【发布时间】:2017-01-25 10:40:33
【问题描述】:
我正在使用 MimeKit 创建带有附件的 s/mime 加密邮件。 只要附件名称具有特殊字符,例如äüö,附件名称丢失并在 Outlook 中显示为“未命名附件 123.dat”。 未加密的邮件很好,所以唯一的区别就是 msg.Encrypt(context)。
MimeKit 中是否存在与此用例有关的一些限制,还是我必须做更多工作才能使其正常工作?
【问题讨论】:
我正在使用 MimeKit 创建带有附件的 s/mime 加密邮件。 只要附件名称具有特殊字符,例如äüö,附件名称丢失并在 Outlook 中显示为“未命名附件 123.dat”。 未加密的邮件很好,所以唯一的区别就是 msg.Encrypt(context)。
MimeKit 中是否存在与此用例有关的一些限制,还是我必须做更多工作才能使其正常工作?
【问题讨论】:
遍历附件的ContentType和ContentDisposition参数(加密前),将每个参数的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;
【讨论】: