2023年2月22日 星期三

[研究][ASP.NET]MaiKit和MimeKit套件,相同Email,某網段收到附檔 .ZIP 正常,某網段附檔變成 .dat

[研究][ASP.NET]MaiKit和MimeKit套件,相同Email,某網段收到附檔 .ZIP 正常,某網段附檔變成 .dat

2023-02-22

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C#

********************************************************************************

這表示電子郵件在經過某些網路路徑、郵件伺服器、資安設備、資安軟體時,發生了編碼或格式轉換的問題。具體而言,電子郵件通常以純文本或多部分格式(Multipart)的方式發送,Multipart格式允許在電子郵件中包含多個部分,例如文本、圖像或其他檔案,並且每個部分都有自己的MIME類型和編碼方式。

在某些情況下,經過轉發、轉送或轉碼等過程後,郵件中的檔案部分的MIME類型可能被更改為不正確的類型,例如將PDF檔案的MIME類型更改為應用程序/octet-stream(即 .dat 文件),這導致收件人在下載附檔時會看到 .dat 的副檔名。

如果郵件中包含的附檔格式不常見或特殊,有些郵件伺服器或客戶端可能無法正確識別這些檔案的MIME類型,從而將其解釋為應用程序/octet-stream(即 .dat 文件)。

如果無法從網路路徑、郵件伺服器、資安設備、資安軟體解決 (不會處理、或不支援),或可嘗試修改程式碼,避開問題。

********************************************************************************

具體範例,把 "octet-stream" 改成 "x-unknown",實際測試可以解決;但不保證每個場合都可以這樣解決,有可能您的環境有其他問題。

/ 有問題
//MimePart attachment = new MimePart("application", "octet-stream")

MimePart attachment = new MimePart("application", "x-unknown")

//Expected '/' at position 11
//描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
//MimePart attachment = new MimePart("application")


(完)

沒有留言:

張貼留言