加密附件名称中包含特殊字符的邮件

时间:2017-01-25 10:40:33

标签: smime mimekit

我正在使用MimeKit创建带附件的s / mime加密邮件。 一旦附件名称具有特殊字符,例如äüö,attachemnt名称丢失,在Outlook中显示为“unnamend attachment 123.dat”。 未加密的邮件很好,所以唯一的区别就是msg.Encrypt(context)。

MimeKit是否存在关于此用例的一些限制,还是我需要做更多工作才能使其正常工作?

1 个答案:

答案 0 :(得分:1)

迭代附件的ContentTypeContentDisposition参数(加密前),并将每个参数的EncodingMethod设置为ParameterEncodingMethod.Rfc2047

问题可能是Outlook无法处理参数值的rfc2231样式编码。

示例:

foreach (var param in attachment.ContentType.Parameters)
    param.EncodingMethod = ParameterEncodingMethod.Rfc2047;
foreach (var param in attachment.ContentDisposition.Parameters)
    param.EncodingMethod = ParameterEncodingMethod.Rfc2047;