使用 MailKit,具有 Unicode 文件名的附件在 Outlook 中显示为"untitled attachment"



我们在应用程序中使用MailKit向用户发送电子邮件。这些电子邮件通常具有Unicode或长文件名的附件。某些电子邮件客户端,如Outlook(使用POP或IMAP时)或Outlook Express,无法处理RFC 2231,结果是附件的名称为"无标题附件"。

有没有一种方法可以发送支持RFC 2047(编码字)的附件文件名邮件(使用MailKit)?一个可能的解决方案是在内容处理中将RFC 2231保留在文件名中,但在内容类型中使用编码字编码的名称参数作为后备。这样的事情得到支持了吗?

我刚刚为MimeKit添加了对使用rfc2047编码的支持。

现在有两种方法可以控制用于参数值的编码方法。

第一种方法是在每个单独的Parameter:上设置编码方法

param.EncodingMethod = ParameterEncodingMethod.Rfc2047;

第二种方法是在用于写出消息和/或MIME部分的FormatOptions上设置默认参数编码方法:

var options = FormatOptions.Default.Clone ();
options.ParameterEncodingMethod = ParameterEncodingMethod.Rfc2047;
message.WriteTo (options, stream);

我将尝试用这个功能很快向nuget发布一个新的MimeKit 1.3.0-beta3。

最新更新