我在asp.net mvc web应用程序中有以下内容,其中有一个名为scan.Description的字符串,用于存储有关操作执行的详细信息: -
foreach(var c in Assets){
//code goes here
scan.Description = scan.Description + c.ScanResult + " \"" + System.Environment.NewLine;
//code goes here
}
然后在这个动作方法结束时,我将通过电子邮件发送最终的scan.Description字符串,如下所示: -
using (MailMessage mail = new MailMessage(from, "*****"))
{
mail.Subject = "scan report generated";
mail.IsBodyHtml = true;
System.Text.StringBuilder mailBody = new System.Text.StringBuilder();
mailBody.AppendLine("<span style='font-family:Segoe UI'><b>Hi </b><b></b> <br/><br/>");
mailBody.AppendLine(scan.Description );
mailBody.AppendLine("<br/><br/><div style='color:#f99406;font-weight:bold'>scanning Management </div> <br/> <div style='color:#f99406;font-weight:bold'>Best Regards</div></span>");
SmtpClient smtp = new SmtpClient();
smtp.Host = System.Web.Configuration.WebConfigurationManager.AppSettings["smtpIP"];
smtp.EnableSsl = true;
mail.Body = mailBody.ToString();
// NetworkCredential networkCredential = new NetworkCredential(from, "BetherealwayS$1");
smtp.UseDefaultCredentials = false;
// smtp.Credentials = networkCredential;
smtp.Port = Int32.Parse(System.Web.Configuration.WebConfigurationManager.AppSettings["smtpPort"]);
smtp.Send(mail);
}
但我遇到的问题是电子邮件正文中没有System.Environment.NewLine
而且会是一个段落吗?
答案 0 :(得分:2)
Environment.NewLine
并不代表&#34;现在它将神奇地作为一个新的线路在任何地方工作&#34;。它仅表示特定OS /托管环境的换行序列。
在您的情况下,由于您要发送HTML邮件,因此您需要使用HTML作为换行符,即<p>...</p>
或<br />
,具体取决于您使用的新行的确切类型#39;谈论。
期望Environment.NewLine
能够适应这种情况,就像期待它可以用于例如HTTP标头(正确的总是 CRLF,无论环境如何),或者是自定义二进制格式。