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.