問題背景:
公司有個業務場景是審覈客戶機構通過後,給客戶發送一封郵件,並將機構相關材料以附件形式一塊發送,有些附件名正常,有些就亂了,如下圖:
後來發現是附近名稱過長導致的!
問題原因:java mail中設置附件名稱會採用 base64格式進行編碼,如果附件名稱過長會被進行切割,將剩下字符抹去,所以導致不知道這是什麼格式的文件。
注:雖然將文件格式被改變了,但是若強制轉換成原格式(右鍵->另存爲->xxx.pdf) 仍然可以進行打開,文件內容也並非改變(這是測試後的結果)
解決方案:
由於是spring boot 項目,只需要在main方法中加入以下 代碼即可(大概意思就是,取消切割,默認是true)
System.setProperty("mail.mime.splitlongparameters", "false");
參考文檔:https://blog.csdn.net/z69183787/article/details/79238735