got*_*ch4 6 unicode spring jakarta-mail
我正在使用Spring和JavaMailSenderImpl,一个着名的Spring类来发送电子邮件.我的电子邮件包含很多像èéàò这样的unicode字符,或者最引人注目的是可怕的符号.在Windows上运行时,我的类工作正常.发送的电子邮件包含所有字符(纯文本,无HTML).如果我在Linux虚拟服务器上安装我的应用程序,我会得到所有?而不是特殊的字符.是Spring,Java配置还是其他什么?
更新
基本上,架构是这样的:有一个Spring Web应用程序,我使用spring JavaMailSenderImpl来完成工作.这是servlet-context中的配置:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${email.server}" />
<property name="username" value="${email.server_user}"></property>
<property name="password" value="${email.server_pass}"></property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我在Windows和Linux上使用相同的主机发送邮件(这与运行应用程序的机器不同......它只是一个基于SMTP的标准邮件服务提供商).
我用来发送电子邮件的代码很简单:
SimpleMailMessage msg = new SimpleMailMessage();
msg.setTo(adminEmail);
msg.setFrom(adminEmail);
msg.setSubject(subject);
msg.setText(message);
mailSender.send(msg);
Run Code Online (Sandbox Code Playgroud)
甚至设置:
System.setProperty("mail.mime.charset", "utf8");
Run Code Online (Sandbox Code Playgroud)
在应用程序启动时并没有解决问题.事实上,在我到来之前?而不是€,现在我得到 ...
Mr.*_* 14 20
在我的例子中,我通过指定JavaMailSenderImpl的defaultEncoding解决了编码问题:
mailSender = new JavaMailSenderImpl();
...
mailSender.setDefaultEncoding("UTF-8");
Run Code Online (Sandbox Code Playgroud)
我相信你也可以在bean配置中设置值:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
...
<property name="defaultEncoding" value="UTF-8"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
got*_*ch4 16
我发布了解决方案.
首先确保源代码的编码(如果有内联文本).在eclipse中,如果选择项目属性,则是第一个屏幕.警告:如果您稍后更改它会使您的文本乱码.
第二个最好使用MimeMailMessage,以便您可以指定编码,如下所示:
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);
Run Code Online (Sandbox Code Playgroud)
第三,确保系统属性mail.mime.charset设置为UTF-8,可以是Java命令,也可以是这样的代码:
System.setProperty("mail.mime.charset", "utf8");
Run Code Online (Sandbox Code Playgroud)
感谢所有帮助我解决这个问题的人.
| 归档时间: |
|
| 查看次数: |
11628 次 |
| 最近记录: |