我们在应用程序中使用MailKit向用户发送电子邮件。这些电子邮件通常包含带有Unicode或长文件名的附件。某些电子邮件客户端,如Outlook (使用POP或IMAP时)或Outlook Express,无法处理RFC 2231,结果是附件的名称为“无标题附件”。
有没有办法(使用MailKit)为附件文件名发送支持RFC2047(编码字)的邮件?一种可能的解决方案是将RFC2231保留在content-disposition中的filename中,但使用content-type中的encoded word编码名称参数作为备用参数。这样的东西受支持吗?
发布于 2015-12-11 05:59:52
我刚刚在MimeKit中添加了对使用rfc2047编码的支持。
现在有两种方法可以控制用于参数值的编码方法。
第一种方法是在每个单独的Parameter上设置编码方法
param.EncodingMethod = ParameterEncodingMethod.Rfc2047;第二种方法是在用于写出消息和/或MIME部分的FormatOptions上设置默认参数编码方法:
var options = FormatOptions.Default.Clone ();
options.ParameterEncodingMethod = ParameterEncodingMethod.Rfc2047;
message.WriteTo (options, stream);我会尝试很快发布一个新的MimeKit 1.3.0-beta3到nuget,并提供这个特性。
https://stackoverflow.com/questions/33598022
复制相似问题