vik*_*kka 2 java email outlook encoding jakarta-mail
我在我的一个 struts 应用程序中遇到了一个问题。我有 JSP 页面,它接受用户的输入并将其发送到电子邮件地址。我在 JSP 页面中设置的编码如下。
\n\n<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" language="java"%>\nRun Code Online (Sandbox Code Playgroud)\n\n现在,当用户提交表单以进行操作时,我使用以下代码向收件人发送电子邮件。
\n\nProperties properties = new Properties();\n properties.put("mail.smtp.host", "10.51.10.44");\n properties.put("mail.smtp.port", "25");\n properties.setProperty("charset","utf-8");\n Session session = Session.getDefaultInstance(properties, null);\n try {\n\n MimeMessage message = new MimeMessage(session);\n String msg = formatEmail(userForm.getContent(),userForm.getUsername(),ip,host);\n message.setFrom(new InternetAddress(from));\n message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));\n message.setSubject(subject, "UTF-8");\n BodyPart messageBodyPart = new MimeBodyPart(); \n messageBodyPart.setHeader("Content-Type","text/plain; charset=UTF-8"); \n System.out.println("subject :-"+subject);\n System.out.println("MESSAGE :-"+msg);\n messageBodyPart.setContent(msg.toString(), "text/html;charset=UTF-8");\n Multipart multipart = new MimeMultipart();\n multipart.addBodyPart( messageBodyPart ); \n message.setContent( multipart); \n Transport.send(message);\nRun Code Online (Sandbox Code Playgroud)\n\n但我的收件人收到的阿拉伯语电子邮件的内容和主题为垃圾邮件,如下所示。
\n\n\xc3\x98\xc2\xb3\xc3\x99\xc5\xa0\xc3\x98\xc2\xb3\xc3\x99\xc5\xa0\xc3\x98\xc2\xb4\xc3\x98\xc2\xb4\xc3\x98\xc2\xb3\xc3\x99\xc5\xa0\xc3\x98\xe2\x80\xa2\xc3\x99\xc6\x92\xc3\x99\xe2\x80\xa0\xc3\x98\xc2\xb4\xc3\x98\xc2\xb3\xc3\x99\xc5\xa0\xc3\x99\xc6\x92\xc3\x98\xc2\xaa\xc3\x98\xc2\xb3\xc3\x99\xc5\xa0\xc3\x98\xc2\xb4\xc3\x99\xe2\x80\xa6\xc3\x98\xc2\xa7\xc3\x98\xc2\xb3\xc3\x99\xc5\xa0\xc3\x98\xc2\xb4\xc3\x99\xe2\x80\xa0\xc3\x99\xe2\x80\x9e\xc3\x98\xc2\xa7\xc3\x98\xc2\xb3\xc3\x99\xc5\xa0\xc3\x98\xc2\xb4\xc3\x98\xc2\xaa\xc3\x99\xe2\x80\x9e\xc3\x98\xc2\xb4\xc3\x98\xc2\xb3\xc3\x99\xc5\xa0\xc3\x98\xc2\xaa\xc3\x99\xe2\x80\x9e\xc3\x98\xc2\xb4\xc3\x98\xc2\xb3\xc3\x99\xc5\xa0\xc3\x98\xc2\xac\xc3\x98\xc2\xb4\xc3\x98\xc2\xb3\xc3\x99\xc5\xa0\xc3\x99\xe2\x80\x9e\xc3\x98\xc2\xac\xc3\x98\xc2\xb3\xc3\x98\xc2\xb4\xc3\x98\xc2\xaa\xc3\x99\xe2\x80\xa0\xc3\x98\xc2\xb3\xc3\x99\xc5\xa0\nRun Code Online (Sandbox Code Playgroud)\n\n请帮助...我知道这是一个编码问题。如果我将 jsp 的编码更改为
\n\n<%@ page pageEncoding="UTF-8" contentType="text/html; charset=iso-8859-1" language="java"%>\nRun Code Online (Sandbox Code Playgroud)\n\n但是,通过这样做,从数据库重试并显示在 JSP 页面中的所有其他文本都将显示为问号。
\n