以纯文本格式发送邮件时忽略换行符

Roc*_*ngh 11 c# asp.net mailmessage

我有一个文本,如"你好,\ r \n这是测试\ r \n谢谢"我正在使用MailMessage类发送邮件.我将"IsBodyHtml"属性设置为false.问题是我收到的邮件没有换行符.你能让我知道我错过了什么吗?

hun*_*ind 15

使用Environment.NewLinemsdn而不是\ r \n.


Mik*_*rds 8

我们遇到了同样的问题,但是如果你在String中一次定义你的消息,而不是StringBuilder,你可以像这样定义你的消息:

string message = string.Format(
@"First Line: {0}
Second Line: {1}
ThirdLine: {2}", firstValue, secondValue, thirdValue);
Run Code Online (Sandbox Code Playgroud)

像这样定义消息体,并设置IsBodyHtml = false,将为您提供所需的新行.

否则,请使用StringBuilder

var sb = new StringBuilder();
sb.AppendLine("FirstLine");
sb.AppendLine("SecondLine");
Run Code Online (Sandbox Code Playgroud)


小智 5

这是 Outlook 中的一项功能,您可以在 Outlook 中将其关闭。转到选项 - 邮件 - 在“消息格式”下取消选中“删除纯文本消息中的额外换行符”。

另一种解决方案是在发送邮件时在每行末尾添加三个空格。这似乎让 Outlook 接受它不是额外的换行符。