JavaMailでMessagingExceptionが出る場合
javaMailについてはWEB上でもサンプルが豊富なので、使う場合に困ることはないのですが、
先日原因不明のエラーに遭遇してしまいました(泣)
javax.mail.MessagingException: 501 5.0.0 HELO requires domain address
発生するLinux環境としない環境があり、違いがイマイチ分かっていません。
結果、mail.smtp.localhostシステムプロパティにSMTPサーバのアドレスを加えることで解決しました。
Properties props = new Properties(); props.put("mail.smtp.host", smtpServer); props.put("mail.smtp.localhost", smtpServer);
ちなみに、java.mail.Session#setDebug(boolean)を利用すると、SMTPサーバに発行するコマンドを標準出力で見ることができます。
Session session = Session.getDefaultInstance(props, null); session.setDebug(true);