C# 使用StringBuilder添加新行

C# 使用StringBuilder添加新行,c#,asp.net,stringbuilder,C#,Asp.net,Stringbuilder,我想向用户发送一封电子邮件,如下所示: 这是验证码 用户名:xyz 代码:xyz 以下是我关于电子邮件的所有代码: StringBuilder emailMessage = new StringBuilder(); emailMessage.Append("Here is the Verification Code."); emailMessage.Append(Environment.NewLine); emailMessage.Append("UserName: " + UsernameTe

我想向用户发送一封电子邮件,如下所示:
这是验证码
用户名: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
,但没有任何效果。有什么问题吗?我在哪里遗漏了什么

添加到stringbuilder时,请尝试
AppendLine()

编辑:

如果您正在为电子邮件构建HTML,则需要附加

。这将添加一个中断并为您创建新行。

在添加到stringbuilder时尝试
AppendLine()

编辑:


如果您正在为电子邮件构建HTML,则需要附加

。这将为您添加一个中断,并为您创建一个新行。

对于您想使用

而不是
\n
的HTML电子邮件,您想使用

而不是
\n
的问题的答案是,使用
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");
StringBuilder sb=新建StringBuilder();
Append(File.ReadAllText(HttpContext.Current.Server.MapPath(“~/EmailTemplate/template.htm”);
//替换文字
(b)替换(“名”);
替换某人(“电子邮件”);
替换(“,”密码“);

您的问题的答案是,使用
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");
StringBuilder sb=新建StringBuilder();
Append(File.ReadAllText(HttpContext.Current.Server.MapPath(“~/EmailTemplate/template.htm”);
//替换文字
(b)替换(“名”);
替换某人(“电子邮件”);
替换(“,”密码“);

您可以使用

标记并设置/添加内容
AlternateView
文本/html

AlternateView htmlView = AlternateView.CreateAlternateViewFromString(htmlContent);
htmlView.ContentType = new System.Net.Mime.ContentType("text/html");
<MailMessageObject>.AlternateViews.Add(htmlView);
AlternateView htmlView=AlternateView.CreateAlternateViewFromString(htmlContent);
htmlView.ContentType=新系统.Net.Mime.ContentType(“text/html”);
.AlternateView.Add(htmlView);

您可以使用

标记并设置/添加内容
AlternateView
文本/html

AlternateView htmlView = AlternateView.CreateAlternateViewFromString(htmlContent);
htmlView.ContentType = new System.Net.Mime.ContentType("text/html");
<MailMessageObject>.AlternateViews.Add(htmlView);
AlternateView htmlView=AlternateView.CreateAlternateViewFromString(htmlContent);
htmlView.ContentType=新系统.Net.Mime.ContentType(“text/html”);
.AlternateView.Add(htmlView);
这样就可以了

这就行了


扩展方法可以简化代码

公共静态StringBuilder AppendHtmline(此StringBuilder sb,字符串行){
返回sb.Append(第+行“
”); }
那你就打电话吧

stringBuilder.appendhtmline(“这是验证代码”);

行将以

终止。扩展方法可以简化代码

公共静态StringBuilder AppendHtmline(此StringBuilder sb,字符串行){
返回sb.Append(第+行“
”); }
那你就打电话吧

stringBuilder.appendhtmline(“这是验证代码”);

行将以

终止,您发送电子邮件的格式是什么?如果是nby HTML,您需要适当的HTML标记,如
,如果通过文本,则附录行应能正常工作。您以什么格式发送电子邮件?如果是nby HTML,则需要适当的HTML标记,如
,如果通过文本,则追加行应能正常工作。+0:这不太可能有帮助,因为追加新行将产生大致相同的效果。最有可能的是OP试图构建HTML,结果是当它呈现所有新行/空白时被忽略。然后OP应该声明他正在构建HTMLI已尝试
AppendLine()
,正如您在第5行代码中看到的,它不起作用。那么您构建HTML吗?是
MailMessage email=new MailMessage();email.Body=emailMessage.ToString();email.IsBodyHtml=true+0:这不太可能有帮助,因为追加新行将产生大致相同的效果。最有可能的是OP试图构建HTML,结果是当它呈现所有新行/空白时被忽略。然后OP应该声明他正在构建HTMLI已尝试
AppendLine()
,正如您在第5行代码中看到的,它不起作用。那么您构建HTML吗?是
MailMessage email=new MailMessage();email.Body=emailMessage.ToString();email.IsBodyHtml=true