.Net MailMessage自动折叠标头字段是否超过RFC2822最大长度?

.Net MailMessage自动折叠标头字段是否超过RFC2822最大长度?,.net,email,standards,.net,Email,Standards,请参见第2.1.1节和第2.2.3节开始 如果其内容超过最大长度限制,System.Net.Mail.MailMessage是否会自动折叠其标题字段?RFC2822规定,标题字段每行不得超过998个字符。为了避免这种情况,可以插入CRLF,使标题字段占用多行 想法?至少在使用SmtpClient发送邮件之前,MailMessage类不会进行任何自动折叠。只有在发送消息时,.NET才会自动折叠头字段以构造MIME消息。发送邮件后,您可以通过访问MailMessage.Headers来检查这一点 折

请参见第2.1.1节和第2.2.3节开始

如果其内容超过最大长度限制,System.Net.Mail.MailMessage是否会自动折叠其标题字段?RFC2822规定,标题字段每行不得超过998个字符。为了避免这种情况,可以插入CRLF,使标题字段占用多行


想法?

至少在使用
SmtpClient
发送邮件之前,
MailMessage
类不会进行任何自动折叠。只有在发送消息时,.NET才会自动折叠头字段以构造MIME消息。发送邮件后,您可以通过访问
MailMessage.Headers
来检查这一点

折叠可能发生在多个位置,具体取决于是否需要事先对报头字段进行编码。例如,如果主题包含非US-ASCII字符,则必须使用Base64或Q编码。在这种情况下,负责编码的类也进行折叠

如果您使用Reflector,您可以查看例如
MailWriter
类,它是执行折叠的类之一,并且至少在.NET 2.0中,使用RFC2822中指定的建议默认行限制(每行78个字符)

每行字符都必须是no 超过998个字符,且应 不超过78个字符, 不包括CRLF