某一天專案升級 Java 8 時候,我專案遇到Email發送標題亂碼,最後找到解決方案。
不過我還深入了解一下,預防下次遇到快速找到真正原因。
1 | $subject = "=?UTF-8?B?".base64_encode($subject)."?="; |
PHP發送UTF-8編碼中文郵件標題亂碼的解決 - 每日頭條
MimeUtility (JavaMail API documentation)
Java使用javax.mail傳送郵件 解決收件人、發件人名字亂碼問題 - IT閱讀
1 | return String.format("%1$s <%2$s>", MimeUtility.encodeText(name, "UTF-8", "B"), email); |
MIME协议详细介绍. 邮件由header+body组成,头部格式: Name: Value。 | by Gabi Sual | Medium
這裡面邮件MIME格式分析 - crystalray - 博客园介紹非常詳細。