system . environment .换行间歇不工作
本文关键字:工作 environment 换行 system | 更新日期: 2023-09-27 17:49:39
我有一些发送电子邮件的代码。
代码通常是这样的:
Stringbuilder sb = new StringBuilder();
sb.Append("Field1:" + Field1.Text);
sb.Append(System.Environment.NewLine);
.
.
.
创建字符串,然后将其转换为字符串并传递给发送电子邮件的函数。
这适用于表单中的大多数字段。但是,有几个字段永远不会换行。同样的代码却有不同的表现,这真的很奇怪。
我读过有很多方法可以在stringBuilder中添加换行符,我也试过
sb.AppendLine()
但这也行不通。
建议吗?
各种各样的邮件客户端会尝试把邮件弄得乱七八糟,试图让它们看起来更像他们认为你想要的那样。
一个常见的例子是,有时纯文本电子邮件在发送过程中在一定数量的字符之后被人为地断行,邮件客户端可能会尝试检测并删除这些人为的断行。大多数情况下,它会认为单行换行是"假的",双行换行代表一个新段落,应该保留。
解决这个问题的最好方法是将邮件作为HTML发送。邮件客户端可能有关闭这种不希望的行为的设置,但据我所知,没有办法在邮件本身中禁用它。
使用HTML换行标记。请确保电子邮件设置为允许HTML。
Stringbuilder sb = new StringBuilder();
sb.Append("Field1:" + Field1.Text);
sb.AppendLine("<br />"); //use AppendLine so that source looks pretty. Use HTML break so that the rendered text has a new line
public static void SendMail(MailMessage mail)
{
mail.IsBodyHtml=true;
//send the email
}