22 Aralık 2016 Perşembe

JavaMail Session Sınıfı

Session Sınıfı
Bu sınıfı kullanmak için şu satır dahil edilir.
import javax.mail.Session;
E-posta için kullanılan bir kaç protokol çeşidir var. Bunlar SMPT (Simple Mail Transfer Protocol), IMAP (Internet Message Access Protocol), POP3 (Post Office Protocol Version 3). Session sınıfının esas amacı bizi bu protokollerden izole etmektir. Session sınıfı, MAPI, NNTP gibi diğer e-posta protokollerini desteklemiyor.

SMTP e-posta göndermek içindir. POP3 sadece e-posta okumak içindir.

Genel kullanım şekli
Örneğin Session sınıf aracılığıyla Transport,Store, gibi nesneleri elde ederiz.
Session session = ...;
MimeMessage message = new MimeMessage(session);
...
Transport transport = session.getTransport("smtp");
transport.connect(host, from, pass);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
getInstance metodu
Parametre olarak Properties ve Authenticator alır. Sadece Properties vermek için şöyle yaparız.
Properties props = new Properties();
props.setProperty(...,...);
Session session = Session.getInstance(props, null);
Properties ve Authenticator vermek için şöyle yaparız.
Properties props = new Properties();
prop.put("...", "...");
Session session = Session.getInstance(props,
  new javax.mail.Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
      return new PasswordAuthentication(username, password);
    }
});
getDefaultInstance metodu
getDefaultInstance() herkesle paylaşıldığı için kullanılmamalı. Metodun için şuna benziyor. defaultSession nesnesinin null ise yaratıldığı mevcut ise tekrar kullanıldığı görülebilir.
public static synchronized Session getDefaultInstance(Properties props,
                                       Authenticator authenticator) {
  if (defaultSession == null)
    defaultSession = new Session(props, authenticator);
  else {
    // have to check whether caller is allowed to see default session
    if (defaultSession.authenticator == authenticator)
               ;       // either same object or both null, either way OK
    else if (defaultSession.authenticator != null &&
             authenticator != null &&
             defaultSession.authenticator.getClass().getClassLoader() ==
             authenticator.getClass().getClassLoader())
               ;       // both objects came from the same class loader, OK
     else
       // anything else is not allowed
       throw new SecurityException("Access to default session denied");
  }
  return defaultSession;
}
getTransport metodu
Şöyle yaparız.
Transport transport = session.getTransport ("smtp");
getStore metodu
Store nesnesi döner. Şöyle yaparız.
Store store = session.getStore();
setDebug metodu
Şöyle yaparız.
session.setDebug(true);

Store Sınıfı
Store sınıfından Folder nesnesi elde ederiz.



Hiç yorum yok:

Yorum Gönder