程式狂想筆記

一個攻城師奮鬥史

0%

MIME 信件標題亂碼問題

某一天專案升級 Java 8 時候,我專案遇到Email發送標題亂碼,最後找到解決方案。
不過我還深入了解一下,預防下次遇到快速找到真正原因。

1
2
3
4
5
$subject = "=?UTF-8?B?".base64_encode($subject)."?=";

將上面一句添加到代碼之中,這樣,發送的中文郵件標題就不是亂碼了。

原文網址:https://kknews.cc/code/nkobrl3.html

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 - 博客园介紹非常詳細。