2012/08/28

不論是否有錯誤的地址都要寄出信給正確地址收件者

目的:在JavaMail中,會遇到要寄給很多個Recipients的狀況,但是在預設的情況下,Mail Server 若發現提交的多個InternetAddress或Address中有一個有錯,例如"User unknown"或是"Invalid Address",則會直接停止動作不寄信,就算其他的地址是正確的也不會寄。

解法:將mail.smtp.sendpartial屬性設為true

Properties props = new Properties();
props.put("mail.smtp.sendpartial", "true");


注意:
  • 是"true"不是true,要傳進去的是字串才對。
  • 就算設成true也不一定會被 Mail Server接受,最終還是看Mail Server。
  • 建議還是在使用前,先將地址做些Regexp驗證,順便把valid跟invalid的Address做分類。可搜尋email address pattern,有各式各樣的Pattern可用。

參考:

沒有留言:

張貼留言