Java Mail API is a set of abstract APIs in Java EE which enables a java application to send and receive emails , along with a Java Mail Service provide Implementation(Java Mail SPI).This Java Mail API tutorial discusses the various concepts of Java Mail API with suitable examples.Java Mail API is embedded with Java EE. It is possible to add Java mail with Java SE (Please visit this page for more details).
Java Mail API Architecture
As the name suggests , it is an API to interact with mail servers.This API does not contain any mail servers in it.Instead , it contains interfaces and classes for interacting with mail servers.The Java mail API along with a Service Provider Implementation(SPI) makes a Java application to be able to send and receive mails.Java EE is shipped with a default SPI . If we want we can use other SPIs like GNU Java Mail.
Block Diagram of Java Mail API
The block diagram of a Java mail API system is shown below.
Java Mail API supports the following protocols:
1)SMTP(Simple Mail Transfer protocol)
2)POP(Post Office Protocol) – An email retrieval protocol
3)IMAP(Internet Message Access Protocol) – An email retrieval protocol.
Of the above 3 , SMTP can be used to send and retrieve mails with mail server.(Generally email clients uses SMTP only to send mails.To receive mails , they are using POP or IMAP.)POP and IMAP are using only to retrieve mails from mail server.
An open source Java Mail implementation is there. It is the GNU Java Mail .It is an implementation of Java Mail API specification version 1.2. It gives NNTP (Network News Transfer Protocol)support.
Major Components of Java Mail API
There are many components in Java Mail API.We are discussing very few here.Other components will be discussing in coming chapters.
1)The Message class
This class is an implementation of the Part interface . The Part interface defines attributes that are required to define a Message object. In addition the Message class adds few more attributes like From, To , Subject,Reply-To .
2)The Transport class
This class provides the send() method . It is using to send the email.
3)The Session class
This class defines the user related properties as well as global properties.(For examples user related properties like id and password)
See Related :
Sending email in Java using SMTP