1

我想向用户发送如下电子邮件:
这是验证码
用户名:xyz
代码:xyz

这是我关于电子邮件的所有代码:

StringBuilder emailMessage = new StringBuilder();
emailMessage.Append("Here is the Verification Code.");
emailMessage.Append(Environment.NewLine);
emailMessage.Append("UserName: " + UsernameTextBox.Text).AppendLine();
emailMessage.AppendLine();
emailMessage.Append("Code:  " + newCode);
MailMessage email = new MailMessage();
email.To.Add(new MailAddress(emailAddress));
email.Subject = "Subject";
email.Body = emailMessage.ToString();
email.IsBodyHtml = true;
  //Send Email; 
SmtpClient client = new SmtpClient();
client.Send(email);  

此代码使用单行发送邮件,即这里是验证码。用户名:xyz 代码:xyx
我尝试使用emailMessage.Append(Environment.NewLine);我也尝试过"\n"\r\n但没有任何效果。它有什么问题或我在哪里遗漏了什么?

4

6 回答 6

9

AppendLine()添加到字符串生成器时尝试

StringBuilder.AppendLine 方法

编辑:

如果您正在为电子邮件构建 HTML,那么您需要附加<br />. 这将添加一个中断并为您创建一个新行。

于 2013-11-12T06:52:59.300 回答
2

你的问题的答案是,使用AppendLine()方法。但是当您发送电子邮件时,我强烈建议您创建一个 HTML 模板,其中包含实际值的占位符,然后将占位符替换为实际值,然后将该内容发送到电子邮件正文IsBodyHtml=true

这将有助于您将来以及当您想要更改不需要构建或部署项目的电子邮件格式时,您只需要编辑模板。

StringBuilder sb = new StringBuilder();
sb.Append(File.ReadAllText(HttpContext.Current.Server.MapPath("~/EmailTemplate/template.htm")));

 //Replace literals
 sb.Replace("<%Name%>", "FirstName");
 sb.Replace("<%EmailAddress%>", "Email");
 sb.Replace("<%Password%>", "password");
于 2013-11-12T06:56:50.770 回答
1

对于您要使用的 HTML 电子邮件,<br />而不是\n

于 2013-11-12T06:56:13.673 回答
0

这将在这里

  StringBuilder emailMessage = new StringBuilder();
                    emailMessage.AppendLine("Here is the Verification Code.");
                   // emailMessage.Append(Environment.NewLine);
                    emailMessage.AppendLine("UserName: " + UsernameTextBox.Text);
                    emailMessage.AppendLine();
                    emailMessage.AppendLine("Code:  " + newCode);  
于 2013-11-12T07:04:29.320 回答
0

您可以使用<br/>标签并设置/添加内容AlternateViews text/html

AlternateView htmlView = AlternateView.CreateAlternateViewFromString(htmlContent);
htmlView.ContentType = new System.Net.Mime.ContentType("text/html");
<MailMessageObject>.AlternateViews.Add(htmlView);
于 2013-11-12T07:00:33.313 回答
0

扩展方法可以简化代码...

public static StringBuilder AppendHtmlLine(this StringBuilder sb, string line) {
    return sb.Append(line + "<br>");
}

然后你就打电话

stringBuilder.AppendHtmlLine("Here is the Verification Code.");

和行将终止<br>

于 2020-03-27T11:09:09.287 回答