Я использую Spring и JavaMailSenderImpl, известный класс Spring для отправки электронных писем. Мои электронные письма содержат много символов Unicode, таких как èéàò или, что особенно важно, страшный символ €. Мои классы отлично работают при запуске на windows. Отправленные электронные письма содержат все символы (простой текст, без HTML). Если я установлю свое приложение на виртуальный сервер Linux, я получу все? вместо специальных символов. Это весна, Конфигурация Java или что-то еще?
Обновление
В основном архитектура такова: есть веб-приложение Spring, и я использую Spring JavaMailSenderImpl для выполнения работы. Это конфигурация в контексте сервлета:
<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");
при запуске приложения не решает ситуацию. В самом деле, раньше я получал? вместо € теперь получаю ...