我正在使用javax.mail API向我的Outlook发送电子邮件。我的身体里有中国和法国人物。 我正确地将身体设为
MimeMessage.setText(正文,“UTF-8”);
另外在电子邮件中我正在查看标题。他们适当地来了: 内容类型:text / plain; 字符集= “UTF-8” 内容传输编码:quoted-printable
有趣的是,从其他机器,电子邮件很好,但是当我从我的桌面尝试它时,它没有正确编码。
我也是通过打印身体来检查日志。他们恰好用中文和法文。 需要帮助 ? 这与Sendmail有什么关系吗?
答案 0 :(得分:0)
应该有效;你也忘了做主题。特别是当您检查标题时。编码呼叫:
MimeMessage message = new MimeMessage(session);
message.setSubject(subject, "UTF-8");
message.setText(body, "UTF-8");
//message.setHeader("Content-Type", "text/plain; charset=UTF-8");
我认为,桌面上的电子邮件设置强制编码错误。
偏执狂:通过硬编码的u-escaped字符串检查正文字符串:
message.setText("\u00e9\u00f4\u5837" + body, "UTF-8"); // éô堷