Gmail

せっかくなので?Gmailsmtpで送信することにする。
って・・・送れないんですけど・・・


どうやら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

まぁ気にしない方向で。