aw0*_*w04 1 c# outlook gmail stringbuilder newline
我正在使用System.Net.Mail.MailMessage该类生成一个简单的电子邮件,并使用StringBuilder.我正在循环string[]并尝试每次添加一个新行.我遇到的问题是我似乎每次都无法生成一个新行.我可以得到两个或没有.
我尝试过的:
foreach (var message in messages)
{
body.AppendLine(message);
}
foreach (var message in messages)
{
body.Append(message + "\n");
}
foreach (var message in messages)
{
body.Append(message + System.Environment.NewLine);
}
Run Code Online (Sandbox Code Playgroud)
我也试过了string.Format().
对于上面的每个例子,我得到相同的结果.没有生成新行.
但是,当我尝试以下操作时,我得到了预期的结果.中间有空行的新行.
foreach (var message in messages)
{
body.AppendLine(message + System.Environment.NewLine);
}
Run Code Online (Sandbox Code Playgroud)
为什么要这样做,我该怎么办才能每次只获得一条新线?
更新:
所以我发现Outlook和可能的Gmail(没有测试过其他人)实际上是删除了一些换行而不是其他换行符.有谁知道他们为什么或如何确定要删除的内容?

当我在Outlook中检查电子邮件时,我收到一条小信息,上面写着"此消息中的额外换行符被删除"以及恢复它们的选项.Gmail没有给出这样的指示(我发现),但我必须假设它也删除了它们.
有趣的是,我身体其他地方的换行符按预期工作,只有循环中的换行符被视为"额外".
我修改了我的代码以使用html构建电子邮件正文.
IsBodyHtml = true
Run Code Online (Sandbox Code Playgroud)
如果有人知道如何防止这种情况,或者导致某些换行符被删除的原因,请告知我们.
更新:
一旦我知道我在寻找什么,我发现这篇文章有助于解释事情并提供一些替代解决方案.我没有尝试过任何一个,因为我认为在我的情况下使用html是更好的解决方案.
| 归档时间: |
|
| 查看次数: |
7444 次 |
| 最近记录: |