28 Şubat 2018 Çarşamba

JavaMail Properties Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.util.Properties;
Örnek
Şu alanlar doldurulur.
mail.port=25

mail.smtp.starttls.enable=true
mail.smtp.auth=true
mail.transport.protocol=smtp
mail.debug=true
mail.smtp.ssl.trust = localhost
mail.host = localhost
mail.username=XXXXXX
mail.password=XXXXXX
Örnek
Şu alanlar doldurulur.
Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.user", from);
props.put("mail.smtp.password", pass);
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
Auth
Sunucunun bizi doğrulaması için kullanılır. Şöyle yaparız.
props.put("mail.smtp.auth", "true");
Debug
Şöyle yaparız.
props.put("mail.smtp.debug", "true");
Host ve Port
Şöyle yaparız.
props.put("mail.smtp.host", "mail.mydomain.com");
props.put("mail.smtp.port", "587");
SSL
SSL kullanmak için Properties içine verilen mail.smtp.ssl.enable anahtarı true yapılır. SMPT yerine POP3, IMAP gelebilir.

Şöyle yaparız.
props.put("mail.smtp.socketFactory.port", "465");    
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");  

TLS
Bağlantı kurulduktan sonra TLS'e geçmek için mail.smtp.starttls.enable anahtarı true yapılır.
props.put("mail.smtp.starttls.enable", "true");
Şu açıklama faydalı.
TLS is compulsory on 587 and any attempt to open a session without TLS yield the SMTP server error response "530 Must issue a STARTTLS command first". Then setting "mail.smtp.starttls.enable" to "true" alone still yield the same error "Could not convert socket to TLS" but now with a clue: "Server is not trusted". Indeed, you must have either a keystore defined in the JVM start properties that would contain a certificate chain ending onto a trusted root certificate, either enforce trust with this extra property: "mail.smtp.ssl.trust" set to the remote host name.


Hiç yorum yok:

Yorum Gönder