如果创建body属性为
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.Body ="First Line \n second line";
Run Code Online (Sandbox Code Playgroud)
我也试过了
message.Body ="First Line" + system.environment + "second line";
Run Code Online (Sandbox Code Playgroud)
当我收到消息时(使用outlook),这两个都被忽略了.
关于如何获得多条线的任何想法?我正在努力避免使用html编码,以便电子邮件能够更好地使用垃圾邮件过滤器.
谢谢
Gra*_*mas 51
根据drris的评论,如果IsBodyHtml
设置为true,则设计可能会忽略标准换行符,我知道你提到避免使用HTML但是尝试使用<br />
,即使只是为了看看这是否"解决"了问题 - 那么你可以排除你所知道的:
var message = new System.Net.Mail.MailMessage();
message.Body = "First Line <br /> second line";
Run Code Online (Sandbox Code Playgroud)
您也可以只是尝试设置IsBodyHtml
到false
并确定换行符在那种情况下工作,虽然,除非你将其设置为true
明确我敢肯定它默认为false
无妨.
另外作为旁注,避免电子邮件中的HTML并不一定有助于通过垃圾邮件过滤器获取邮件,AFAIK - 如果有的话,你做的最多就是确保在布局方面的跨邮件 - 客户端兼容性.要通过垃圾邮件过滤器"玩得开心",还应该考虑其他一些事情; 甚至包括邮件的主题和内容,邮件发送者以及发送邮件的位置和匹配等等.电子邮件根本不会被歧视,因为它标有HTML.
小智 14
使用两个空格开始每个新行将避免Outlook自动删除.
var lineString = " line 1\r\n";
linestring += " line 2";
Run Code Online (Sandbox Code Playgroud)
将正确显示:
line 1
line 2
Run Code Online (Sandbox Code Playgroud)
使用它有点笨拙的感觉,但它没有花费太多额外的努力就完成了工作.
Mik*_*ari 12
如果您不需要html中的邮件正文,请将其关闭:
message.IsBodyHtml = false;
Run Code Online (Sandbox Code Playgroud)
然后使用例如:
message.Body = "First line" + Environment.NewLine +
"Second line";
Run Code Online (Sandbox Code Playgroud)
但如果由于某种原因需要在html中使用它,请使用html-tag:
message.Body = "First line <br /> Second line";
Run Code Online (Sandbox Code Playgroud)
当我使用 MailMessage 时,我通常喜欢 StringBuilder。添加新行很容易(通过 AppendLine 方法),您可以简单地将 Message 的 Body 设置为 StringBuilder.ToString() (...对于 StringBuilder 的实例)。
StringBuilder result = new StringBuilder("my content here...");
result.AppendLine(); // break line
Run Code Online (Sandbox Code Playgroud)
小智 5
您需要启用 IsBodyHTML
message.IsBodyHtml = true; //This will enable using HTML elements in email body
message.Body ="First Line <br /> second line";
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
91794 次 |
最近记录: |