Я использовал Javax Mail API для отправки писем. Я использую формуляр контакта для отправки ввода, который должен быть отправлен на конкретное электронное письмо.
Письмо отправляется без проблем, хотя я датский парень, поэтому мне нужны три датских персонажа, которые являются "æ", "ø" и "å", в теме и тексте электронной почты.
Поэтому я видел, что я могу использовать кодировку символов UTF-8, чтобы предоставить эти символы, но когда моя почта отправляется, я вижу только странные буквы - "ã|", "ã¸" и "ã ¥" - вместо датских букв - "æ", "ø" и "å".
Мой метод отправки электронной почты выглядит следующим образом
public void sendEmail(String name, String fromEmail, String subject, String message) throws AddressException, MessagingException, UnsupportedEncodingException, SendFailedException
{
//Set Mail properties
Properties props = System.getProperties();
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("my_username", "my_password");
}
});
//Create the email with variable input
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setHeader("Content-Type", "text/plain; charset=UTF-8");
mimeMessage.setFrom(new InternetAddress(fromEmail, name));
mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("my_email"));
mimeMessage.setSubject(subject, "utf-8");
mimeMessage.setContent(message, "text/plain");
//Send the email
Transport.send(mimeMessage);
}
Пожалуйста, помогите мне узнать, как я могу исправить эту "ошибку".