我正在使用Spring和JavaMailSenderImpl,这是一个著名的Spring类,用于发送电子邮件。我的电子邮件包含许多Unicode字符,如èéàò或最明显的可怕的€符号。当我的类在Windows上运行时,它们可以正常工作。发送的电子邮件包含所有字符(纯文本,无HTML)。如果我将应用程序安装在Linux虚拟服务器上,我将得到所有特殊字符的问号。这是Spring、Java配置还是其他什么原因呢?
更新:
基本上架构是这样的:有一个Spring Web应用程序,我使用Spring JavaMailSenderImpl来完成工作。这是servlet-context中的配置:
更新:
基本上架构是这样的:有一个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>
我正在使用同一个主机在Windows和Linux上发送邮件(这不是应用程序运行的同一台机器...它只是一个标准的SMTP邮件服务提供商)。
我用来发送电子邮件的代码非常简单:
SimpleMailMessage msg = new SimpleMailMessage();
msg.setTo(adminEmail);
msg.setFrom(adminEmail);
msg.setSubject(subject);
msg.setText(message);
mailSender.send(msg);
甚至设置:
System.setProperty("mail.mime.charset", "utf8");
在应用程序启动时并不能解决这种情况。事实上,在之前我得到的是?而不是€,现在我得到的是�...
(说明:此段内容可能涉及编码问题,建议检查编码设置)
message
变量的代码吗? - artbristol