簡體   English   中英

電子郵件的Tomcat編碼問題

[英]Tomcat encoding issue with email

我在Windows Tomcat上部署了一個Java Webapp,對其進行了所有更改,以將字符編碼設置為UTF-8,並且對於所有請求響應都可以正常工作。 但是問題是使用Web應用程序發送的電子郵件中出現垃圾字符。

需要解決什么問題?

電子郵件服務代碼:

SimpleMailMessage msg = new SimpleMailMessage();
Map<String, Object> model = new HashMap<String, Object>();
model.put("userName", StringEscapeUtils.unescapeJava(StringEscapeUtils.unescapeHtml(name)));
StringWriter writer = new StringWriter();
        VelocityEngineUtils.mergeTemplate(velocityEngine, "vm/messages/create_user.vm", "utf-8", model, writer);
        msg.setText(writer.toString());
this.mailSender.send(msg);

郵件中的垃圾字符示例:

你好P?ajwal Thakare,

Sie erhalten diese automatische電子郵件,da Sie dasZurücksetzenIhres Passworts angefordert haben。

郵件中的P?ajwal應該是Pʁajwal

用MimeMessage替換SimpleMailMessage。 現在,您可以設置UTF-8字符集。

MimeMessage msg = mailSender.createMimeMessage();

msg.addRecipient(RecipientType.TO, new InternetAddress(adminEmail));
msg.addFrom(new InternetAddress[] { new InternetAddress(adminEmail) });

msg.setSubject(subject, "UTF-8");
msg.setText(message, "UTF-8");  
mailSender.send(msg);

有關更多信息,請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM