2017年11月13日 星期一

【Java】JavaMail發送信件

Java的javax.mail系列函數必須要去官網上下載套件才能使用。(去官網搜尋「JavaMailAPI」或「JavaMail」即可。)

到2017年底為止,已經更新到1.4.7版。(我使用的是1.4.2。)


網路上範例很多,以這個範例為基礎,就可以建立一個可以用的雛型。

唯一的問題是要懂得怎麼設定跟MailServer溝通所需要的參數。

譬如Mail的安全驗證有SSL和TLS兩種。(host用的是GMail。)

Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
(這是SSL。)

Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
(這是TLS。)

如果設定錯誤會得到AuthenticationFailedException


如果MailServer使用的是GMail,那就必須要把Mail的安全設定級別調低,否則一樣是得到AuthenticationFailedException



沒有留言:

張貼留言