Gmail
せっかくなので?Gmailのsmtpで送信することにする。
って・・・送れないんですけど・・・
どうやらstarttls(SSL?)
の設定が必要らしい。。。なんじゃらほい??
popBeforeSmtpとも違うようだし・・・
あれか?スパム対策か?
セキュアのつもりか?(大してセキュアじゃないくせに(おぼろげな知識で批判))
Session mailSession = mail.getMailSession(); Properties properties = mailSession.getProperties();
とかしてみる。あとは予想したとおり。。。
というか、こんなことするなら、commons-emailじゃなくてもよかろうて・・・
んでいろいろ調べた結果、とりあえず以下の設定を入れたら送れた。
properties.setProperty("mail.smtp.starttls.enable", "true"); properties.setProperty("mail.smtp.port", "587"); properties.setProperty("mail.smtp.socketFactory.port", "587"); properties.setProperty("mail.smtp.socketFactory.class ", " javax.net.ssl.SSLSocketFactory"); properties.setProperty("mail.smtp.socketFactory.fallback", "false"); properties.setProperty("mail.smtps.quitwait", "false");
過不足はあるかもしれない。
ちなみに、メールは送れるが、例外もでる。
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:587 at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1138) at org.apache.commons.mail.Email.send(Email.java:1163) at hoge.mokkouyou.loto.Main.sendMail(Main.java:94) at hoge.mokkouyou.loto.Main.main(Main.java:30) Caused by: javax.mail.MessagingException: Exception reading response; nested exception is: javax.net.ssl.SSLException: Unsupported record version Unknown-50.49
まぁ気にしない方向で。