【发布时间】:2008-10-29 16:48:26
【问题描述】:
我正在使用 dotnet 框架发送电子邮件。这是我用来创建消息的模板:
Date of Hire: %HireDate%
Annual Salary: %AnnualIncome%
Reason for Request: %ReasonForRequest%
Name of Voluntary Employee: %FirstName% %LastName%
Total Coverage Applied For: %EECoverageAmount%
Guaranteed Coverage Portion: %GICoveragePortion%
Amount Subject to Medical Evident: %GIOverage%
当 Outlook 收到邮件时,Outlook 告诉我“此邮件中的额外换行符已删除”。消息显示如下:
Date of Hire: 9/28/2001
Annual Salary: $100,000
Reason for Request: New Hire
Name of Voluntary Employee: Ronald Weasley Total Coverage Applied For: $500,000 Guaranteed Coverage Portion: $300,000.00 Amount Subject to Medical Evident: $200,000
注意 Outlook 如何错误地删除名称、EECoverageAmount 等后所需的换行符...
对于电子邮件收件人来说,获得格式正确的电子邮件很重要,我必须假设他们中的一些人使用 Outlook 2003。我也不能假设他们知道足以关闭自动清理功能以使邮件格式化适当地。
我已经在其他邮件客户端中查看过这些邮件并且它们显示正确
更多信息:
- 我正在使用 UTF-8 BodyEncoding (msg.BodyEncoding = System.Text.Encoding.UTF8)
- 正在从 UTF-8 编码的文本文件中读取 msg.Body,每行都以 crlf 结尾。
问题: 如何更改消息格式以避免此问题?
【问题讨论】:
-
虽然下面两个高度赞成的答案都是正确的,但请参阅this answer 了解所有规则的列表。
-
为什么还会存在这个“功能”?
-
尝试 Windows 换行符:
\r\n。它对我有用。