Я использую Apache Commons Mail и обнаружил, что тема электронной почты (и другие настройки, такие как кодировка символов) вообще не используются:
props.put("mail.smtp.host", "localhost");
Session s = Session.getInstance(props, null);
s.setDebug(true);
MimeMessage message = new MimeMessage(s);
message.setHeader("Content-Type", "text/plain; charset=UTF-8");
message.addHeader("Content-Transfer-Encoding", "quoted-printable");
message.setFrom(new InternetAddress("me@home.com"));
message.addRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress("you@abroad.com"));
String subj = MimeUtility.encodeText("");
message.setSubject("my subject with specials äöü");
message.setText("Some text with special äöü");
Transport.send(message);
Вывод отладки показывает:
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "localhost", port 25, isSSL false
220 mydomain ESMTP Postfix
DEBUG SMTP: connected to host "localhost", port: 25
EHLO MyComputer
250-PIPELINING
250-SIZE 10485760
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "SIZE", arg "10485760"
DEBUG SMTP: Found extension "VRFY", arg ""
DEBUG SMTP: Found extension "ETRN", arg ""
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "DSN", arg ""
DEBUG SMTP: use8bit false
MAIL FROM:<me@home.com>
250 2.1.0 Ok
RCPT TO:<you@abroad.com>
250 2.1.5 Ok
DEBUG SMTP: Verified Addresses
DEBUG SMTP: you@abroad.com
DATA
354 End data with <CR><LF>.<CR><LF>
Some text with specials =C3=A4=C3=B6=C3=BC
.
250 2.0.0 Ok: queued as 9F623345F99
QUIT
221 2.0.0 Bye
Насколько я понимаю, SUBJECT должен быть установлен в разделе DATA SMTP-сообщения.
Как я могу это исправить?