参见RFC 2822,第2.1.1和2.2.3节开始
如果内容超出最大长度限制,System.Net.Mail.MailMessage会自动折叠其标题字段吗? RFC2822规定标题字段每行不得超过998个字符。为了解决这个问题,可以插入CRLF以使标题字段占用多行。
思想?
答案 0 :(得分:4)
MailMessage
类至少在使用SmtpClient
发送之前不进行任何自动折叠。只有在发送消息时,.NET才会执行头字段的自动折叠以构造MIME消息。您可以在发送邮件后访问MailMessage.Headers
进行检查。
折叠可能发生在几个地方,这取决于标题字段是否需要预先编码。例如,如果主题包含非US-ASCII字符,则必须使用Base64或Q编码进行编码。在这种情况下,负责编码的类也会进行折叠。
如果您使用Reflector,您可以查看MailWriter
类的示例,该类是执行折叠的类之一,并且至少在.NET 2.0中使用建议的默认行限制为78个字符每行,如RFC2822中所述。
每行字符必须为no 超过998个字符,,应该是 不超过78个字符, 不包括CRLF。