.
.
.
Properties props = System.getProperties();
props.put("mail.smtp.host","xxxxxx.xxxxxx.co.jp");
Session session = Session.getDefaultInstance(props,null);
MimeMessage message = new MimeMessage(session);
.
.
.
message.setText(text, "iso-2022-jp");
.
.
.
Transport.send(mimeMessage);
メール本文は MimeMessage.setText で本文とエンコーディングを指定してセットします。
一般的に日本語メールの場合、JIS(iso-2022-jp)を指定しますが、JavaMail の JISエンコーディングに問題があるため、上記のような現象が起こるようです。
この現象は、Java の標準機能を利用して JISエンコーディングを行うことによって解消しました。
message.setText(new String(text.getBytes("iso-2022-jp")), "iso-2022-jp");
ただ、この現象は Thunderbird など、一部のメーラーで受信した場合にしか起こりません。
そのため、テストで見逃す可能性大です。
すべてのメーラーで受信テストを行うのは実質的に不可能かもしれませんが、受信するメーラーがある程度絞れる場合は、それらすべてのメーラーで受信テストをしておいたほうがよさそうですね。