参见RFC 2822 ,第 2.1.1 和 2.2.3 节开始
如果 System.Net.Mail.MailMessage 的内容超出最大长度限制,是否会自动折叠其 header 字段? RFC2822 规定 header 字段每行不得超过 998 个字符。为了解决这个问题,可以插入 CRLF 以使 header 字段占用多行。
想法?
最佳答案
MailMessage
类至少在使用 SmtpClient
发送之前不会执行任何自动折叠。仅当发送消息时,.NET 才会执行 header 字段的自动折叠,以构造 MIME 消息。您可以在邮件发送后通过访问 MailMessage.Headers
进行检查。
折叠可能发生在多个位置,具体取决于头字段是否需要预先编码。例如,如果主题包含非 US-ASCII 字符,则必须使用 Base64 或 Q 编码进行编码。在这种情况下,负责编码的类也会进行折叠。
如果您使用 Reflector,您可以查看 MailWriter
类,它是执行折叠的类之一,并且至少在 .NET 2.0 中使用建议的默认行限制RFC2822 中规定每行 78 个字符。
Each line of characters MUST be no more than 998 characters, and SHOULD be no more than 78 characters, excluding the CRLF.
关于.net - .Net MailMessage 自动折叠 header 字段是否长于 RFC2822 最大长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3549598/