我们在应用程序中使用 MailKit 向用户发送电子邮件。这些电子邮件通常带有带有 Unicode 或长文件名的附件。某些电子邮件客户端,例如 Outlook(使用 POP 或 IMAP 时)或 Outlook Express,无法处理 RFC 2231,结果是附件的名称为“无标题附件”。
有没有办法为附件文件名发送支持 RFC 2047(编码字)的邮件(使用 MailKit)?一个可能的解决方案是将 RFC 2231 保留在内容处置中的文件名中,但将内容类型中的编码字编码名称参数用作后备。支持这样的东西吗?
最佳答案
我刚刚添加了对 MimeKit 使用 rfc2047 编码的支持。
现在有两种方法可以控制用于参数值的编码方法。
第一种方式是在每个个体上设置编码方式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 以尽快使用此功能进行 nuget。
关于c# - 使用 MailKit,带有 unicode 文件名的附件在 Outlook 中显示为 "untitled attachment",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33598022/