在工作中使用到了BI Publisher發送郵件,之前郵件中文附件名稱能夠正常顯示,但是接到新需求要修改郵件附件名稱(修改後名稱變長了),修改後發現outlook客戶端收到的郵件附件中文亂碼,問題截圖如下:
可以看到,在bip端發送的中文內容是正常的,但是發送後再outlook端接收到的郵件附件名稱展示亂碼了。
通過參考風總的帖子(https://blog.csdn.net/biplusplus/article/details/80524388),知道bip使用javamail來發送郵件,發送的內容是UTF-8或GBK等base64位編碼後的編碼串,按照此方式嘗試發送郵件,但是依然亂碼,可見此種方法有侷限性,只適用於部分場景
通過搜索(https://blog.csdn.net/weixin_39330443/article/details/81942409),發現javamail發送郵件的時候,會將名稱轉碼並截斷,參考文中的解決方案,設置【System.setProperty("mail.mime.splitlongparameters","false");】參數。
那麼,在biee中如何設置該參數呢?
我們可以通過修改setDomainEnv.sh,添加該參數,內容如下:
JAVA_OPTIONS="${JAVA_OPTIONS} -Dmail.mime.splitlongparameters=false"
export JAVA_OPTIONS
修改保存,然後重啓biee服務,重啓完成後測試
至此,問題解決