Home Javamail Technical description of Java Mail API

Related Tutorials


 
 

Share on Google+Share on Google+

Technical description of Java Mail API

Advertisement
This section introduces you with the core concepts of Java Mail API

Technical description of Java Mail API

     

This section introduces you with the core concepts of Java Mail API. You must understand the Java Mail API before actually delving into the development of mail processing applications.

Core classes that makeup the Java Mail API
Lets understand the core Java Mail API classes.

Session

Session is the top-level entry class representing mail session. It uses java.util.Properties object to get information about mail server, username, password etc. This class has a private constructor and you can get session objects through getInstance() and getDefaultInstance() methods. getDefaultInstance() method provides default Session object which takes Properties and Authenticator objects as arguments.

Properties props = new Properties();
// code to fill props with any information
Session session = Session.getDefaultInstance(props, null);

Or create a unique session by getInstance() method…
Properties props = new Properties();
// code to fill props with any information
Session session = Session.getInstance(props, null);

Message

After creating session object, create message to send by using Message class. Because of message class is abstract class so we will use subclass javax.mail.internet.MimeMessage.

MimeMessage message = new MimeMessage(session)
// set the content of message by setContent() method
message.setContent(“www.roseindia.net”, “text/plain”);

We can also use setText() method to set the content.

Message.setText(“www.roseindia.net”);

To create subject line of sending message use setSubject() method.

Message.setSubject(“Its Urgent Message”);

Address

Now we will define address, Address class is also an abstract class so we will use here class javax.mail.internet.InternetAddress.

Address address = new InternetAddress("mahendra.singh@roseindia.net");

To display a name next to the Email Address use one more argument for name.

Address address = new InternetAddress(“mahendra@roseindia.net”, ”Mahendra”);

After creating address connect with message by two ways:


1: By setFrom()method: message.setFrom(address);
1: By setReplyTo()method: When want to send reply to more addresses.

Address address[] = ...;
Message.setReplyTo(address[]);

To identify the recipient, add the recipients by using addRecipient() method….

message.addRecipient(type, address);

Address types are of three types:
* Message.RecipientType.TO: primary recipient
* Message.RecipientType.CC: carbon copy
* Message.RecipientType.BCC: blind carbon copy

To know more about address type see class Message.RecipientType.

Authenticator

The JavaMail Authenticator is found in the javax.mail package, and used as an authenticator to access protected resources by prompting the user for username and password.

Properties props = new Properties();
// fill props with any information
Authenticator auth = new MyAuthenticator();
Session session = Session.getDefaultInstance(props, auth);

Transpor

This is final part of sending Email, it is an abstract class. Default version of this class can be used by calling static send() method.

Transport.send(message);

Or can create a specific instance from the session for defined protocol….

message.saveChanges(); // implicit with send()
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();

Store and folder

After getting the session you connect to javax.mail.Store class with Authenticator or host, port, user and password information. Store object that implements the specified protocol can be created by by passing the protocol information to the getStore() method of the session object.

// create object of store class.
Store store = session.getStore("pop3");
store.connect(host, username, password);

After connecting to store you need to get a folder that holds messages. For POP3, the only folder available is the INBOX but with IMAP, you can have other folders available. For this you can use javax.mail.Folder class….

Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message message[] = folder.getMessages();

Once you have read messages, you need to close Store and Folder…

folder.close(booleanValue);
store.close();

Advertisements

If you enjoyed this post then why not add us on Google+? Add us to your Circles



Liked it!  Share this Tutorial


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: May 25, 2009

Related Tutorials

Discuss: Technical description of Java Mail API  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments:2
Bharanikumar
November 10, 2011
Doubt on Store

What does the store exactly mean?
Vijay
December 8, 2011
Basic Doubt

I am just a newbee and i just even dont know anything more than roseindia in the first example itself not executing for me "sending mail" what is meant by host in it and what are all the host names which can be placed instead of it
DMCA.com