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代码>