SMTP

Properties的意義

Properties prop = new Properties();
prop.put("mail.smtp.host", "smtp.gmail.com");
prop.put("mail.smtp.localhost", "localhost");
prop.put("mail.smtp.port", String.valueOf(25));
prop.put("mail.smtp.timeout", SOCKET_TIMEOUT);
 
// SSL
prop.put("mail.smtp.ssl.enable","true");
// 也可以使用自己的SSLSocketFactory
prop.put("mail.smtp.socketFactory.class", SSL_FACTORY);
// TLS
prop.put("mail.smtp.starttls.enable","true"); 
 
// 影響SocketFactory使用失敗是否要用預設的SocketFactory
prop.put("mail.smtp.socketFactory.fallback", "false");

Set Properties

SMTP設定的Properties,必須都使用String型態,非String型態在它API中會變為null。最常發生的錯誤是:

prop.put("mail.smtp.port", 25);
prop.put("mail.smtp.auth", true);
要改為
prop.put("mail.smtp.port", String.valueOf(25));
prop.put("mail.smtp.auth", String.valueOf(true));