3

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

有没有办法为附件文件名发送支持 RFC 2047(编码字)的邮件(使用 MailKit)?一种可能的解决方案是将 RFC 2231 保留在 content-disposition 中的文件名中,但在 content-type 中使用编码字编码名称参数作为后备。支持这样的东西吗?

4

1 回答 1

2

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

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

第一种方法是为每个人设置编码方法Parameter

param.EncodingMethod = ParameterEncodingMethod.Rfc2047;

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

var options = FormatOptions.Default.Clone ();
options.ParameterEncodingMethod = ParameterEncodingMethod.Rfc2047;

message.WriteTo (options, stream);

我会尝试尽快发布一个新的 MimeKit 1.3.0-beta3 来使用这个功能。

于 2015-12-10T21:59:52.140 回答