2015-11-08 239 views
0

我們在我們的應用程序中使用MailKit向用戶發送電子郵件。這些電子郵件通常具有Unicode或長文件名的附件。某些電子郵件客戶端(如Outlook(使用POP或IMAP)或Outlook Express時)無法處理RFC 2231,結果是附件名稱爲「未命名的附件」。使用MailKit時,帶有unicode文件名的附件在Outlook中顯示爲「無標題附件」

有沒有辦法發送附件文件名支持RFC 2047(編碼字)的郵件(使用MailKit)?一種可能的解決方案是將RFC 2231保存在內容處置的文件名中,但是用作內容類型中的編碼字編碼名稱參數的後退。是這樣的支持?

回答

1

我剛剛添加了對MimeKit使用rfc2047編碼的支持。

現在有2種控制參數值的編碼方法。

第一種方式是設置編碼方法在每個單獨的Parameter

param.EncodingMethod = ParameterEncodingMethod.Rfc2047; 

第二種方式是設置在用於寫出消息和/或MIME部分FormatOptions默認參數編碼方法(s):

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

message.WriteTo (options, stream); 

我會嘗試發佈一個新的MimeKit 1.3.0-beta3到nuget很快與此功能。

+0

測試這兩種方法和第二個似乎並沒有工作。更多信息在這裏https://github.com/jstedfast/MimeKit/issues/291 –