gpt4 book ai didi

Java utf8 电子邮件在部署后无法与 IE 一起使用

转载 作者:行者123 更新时间:2023-12-02 08:19:19 25 4
gpt4 key购买 nike

我有一个邮件程序类,当我在本地运行应用程序时,它可以与 IE 正常工作,但是将其部署到服务器上后,它不断发送官样文章和不可读的字符,我不明白问题出在哪里,一切都是 utf8,这是我的代码:

    public static void sendHTMLEmail(String to, String subject, String body)
throws EmailException {

HtmlEmail email = new HtmlEmail();
email.setSmtpPort(25);
email.setAuthenticator(new DefaultAuthenticator("myMail","myPass"));
email.setDebug(false);
email.setHostName("smtp.gmail.com");


email.setFrom("webmail@mysite.com","Webmail@mysite");
email.setCharset("UTF-8");
email.setSubject(subject);

// --set Body--
String HTMLBody ="<html xmlns='http://www.w3.org/1999/xhtml'>";
HTMLBody += "<head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /></head>";
HTMLBody += "<body><div dir='rtl'>";
HTMLBody += body;
HTMLBody += "</div></body></html>";
// -----------

email.setHtmlMsg(HTMLBody);
email.setTextMsg("Your email client does not support HTML messages");

email.addTo(to);
email.setTLS(true);
email.send();

}

这是我的图书馆:

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.SimpleEmail;

感谢您的宝贵时间

最佳答案

我假设 String body方法参数实际上是用户提供的数据,已在某些 <input> 中输入或<textarea>并由 <form method="post"> 提交在 JSP 页面中。

数据将使用 Content-Type 中指定的字符集提交。包含表单的页面标题。如果 Content-Type 中缺少字符集header,那么浏览器只会做出最佳猜测,而 MSIE 通常不像其他浏览器那么智能,它只会获取客户端平台的默认编码。

您需要确保以下三件事才能顺利完成:

  • 确保 HTTP 响应包含 <form>已发送 charset=UTF-8Content-Type header 。您可以通过将以下行添加到负责生成响应的 JSP 顶部来实现此目的:

    <%@page pageEncoding="UTF-8" %>

    这不仅将响应编码设置为 UTF-8,还隐式设置 Content-Type标题为 text/html;charset=UTF-8 .

  • 确保处理表单提交的 servlet 使用相同的字符编码处理获取的 HTTP 请求中的输入数据。您可以通过在从请求获取任何信息之前添加以下行来实现此目的,例如 getParameter() .

    request.setCharacterEncoding("UTF-8");

    更方便的方法是将该行放在 Filter 中它已映射到感兴趣的 URL 模式,因此您无需在所有 servlet 上复制粘贴该行。

  • 确保您使用 accept-charset <form> 的属性。 MSIE 在这方面有严重的错误。

关于Java utf8 电子邮件在部署后无法与 IE 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5766368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com