The Jakarta Mail API provides a platform-independent and
protocol-independent framework to build mail and messaging
applications.
The Jakarta Mail API is available as an optional package for use with the
Java SE platform
and is also included in the
Jakarta EE platform and the
Java EE platform.
Table of Contents
Latest News
October 23, 2020 - Jakarta Mail 2.0.0 Final Release
Jakarta Mail 2.0.0 release is the first release with package
namespace changed to jakarta.mail
. The main jar file
is located at com.sun.mail:jakarta.mail.
This release contains no other enhancements nor bug fixes,
except for the minimal required Java SE version which is now Java SE 8.
This is also the release included in Jakarta EE 9.
Applications are able to switch to this new version
by just changing all imports that use javax.mail.*
to instead use jakarta.mail.*
.
March 10, 2020 - Jakarta Mail 1.6.5 Final Release
The 1.6.5 release is (hopefully) the last release of the Jakarta Mail project
in the 1.x line, and includes several bug fixes and enhancements.
The main jar file is located at
com.sun.mail:jakarta.mail.
Jakarta Mail, like other parts of Jakarta EE,
is moving to the jakarta.*
package namespace.
This is a major change, and so the next release will be Jakarta Mail 2.0.0,
which will be included in Jakarta EE 9.
Applications should be able to switch to this new version fairly easily
by just changing all imports that use javax.mail.*
to instead use
jakarta.mail.*
.
August 28, 2019 - Jakarta Mail 1.6.4 Final Release
The 1.6.4 release is the first release of the Jakarta Mail project using the
Jakarta EE Specification Process
and includes several bug fixes and enhancements.
The main jar file is located at
com.sun.mail:jakarta.mail.
July 3, 2019 - Jakarta Mail is the new name for JavaMail
The JavaMail technology contributed to the Eclipse Foundation has been renamed
to “Jakarta Mail” to reflect its role in the
Jakarta EE platform.
November 26, 2018 - JavaMail 1.6.3 Final Release
The 1.6.3 release is the first release of the Eclipse project for JavaMail
and includes no bug fixes or enhancements. It does include changes
to the Maven coordinates. The main jar file is now located at
com.sun.mail:jakarta.mail.
September 14, 2018 - JavaMail project moves to the Eclipse Foundation!
The JavaMail project is now hosted at the Eclipse Foundation as part of
the EE4J project.
By contributing to this project, you agree to these additional terms of
use, described in CONTRIBUTING.
Download Jakarta Mail Release
The latest release of Jakarta Mail is 2.0.0.
The following table provides easy access to the latest release. Most
people will only need the main Jakarta Mail implementation in the
jakarta.mail.jar file.
Item |
Description |
jakarta.mail.jar |
The Jakarta Mail implementation, including the SMTP, IMAP, and POP3 protocol providers |
README.txt |
Overview of the release |
NOTES.txt |
Additional notes about using Jakarta Mail |
SSLNOTES.txt |
Notes on using SSL/TLS with Jakarta Mail |
NTLMNOTES.txt |
Notes on using NTLM authentication with Jakarta Mail |
CHANGES.txt |
Changes since the previous release |
COMPAT.txt |
Important notes about compatibility |
In addition, the Jakarta Mail jar files are published to the Maven repository.
The main Jakarta Mail jar file, which is all most applications will need,
can be included using this Maven dependency:
<dependencies>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
You can find all of the Jakarta Mail jar files in
Maven Central.
jar file |
groupId |
artifactId |
Description |
jakarta.mail.jar |
com.sun.mail |
jakarta.mail |
The Jakarta Mail implementation jar file, including the SMTP, IMAP, and POP3 protocol providers |
jakarta.mail-api.jar |
jakarta.mail |
jakarta.mail-api |
The Jakarta Mail API definitions only, suitable for compiling against; use only with a Maven “provided” dependency scope |
mailapi.jar |
com.sun.mail |
mailapi |
The Jakarta Mail implementation with no protocol providers; use with one of the following providers |
smtp.jar |
com.sun.mail |
smtp |
The SMTP protocol provider |
imap.jar |
com.sun.mail |
imap |
The IMAP protocol provider |
pop3.jar |
com.sun.mail |
pop3 |
The POP3 protocol provider |
gimap.jar |
com.sun.mail |
gimap |
An EXPERIMENTAL Gmail IMAP protocol provider that supports Gmail-specific features |
dsn.jar |
com.sun.mail |
dsn |
Support for parsing and creating messages containing Delivery Status Notifications |
logging-mailhandler.jar |
com.sun.mail |
logging-mailhandler |
A java.util.logging handler that uses Jakarta Mail, suitable for use in Google App Engine. |
API Documentation
The Jakarta Mail API is defined through the
Jakarta EE Specification Process.
The Jakarta Mail specification and API documentation are available
here.
Note that Jakarta Mail 1.6 is identical to JavaMail 1.6.
The JavaMail 1.6 and earlier API is defined through the Java Community Process as
JSR 919.
The following documents summarize the API changes in each release of
the JavaMail API specification:
Samples
Some sample programs showing how to use the Jakarta Mail APIs are available
here.
Help
Please read the
Jakarta Mail FAQ!
Read it again. Tell everyone you know to read it. Thank you!
You can post questions to the
mail-dev mailing list.
Or, post a question on Stack Overflow using the
javamail tag.
Bugs
Jakarta Mail bugs are tracked in the
GitHub Jakarta Mail project issue tracker.
Development Releases
From time to time snapshot releases of the next version of Jakarta Mail
under development are published to the
Jakarta Sonatype OSS repository.
These snapshot releases have received only minimal testing, but may
provide previews of bug fixes or new features under development.
For example, you can download the jakarta.mail.jar file from the Jakarta Mail
2.0.0-SNAPSHOT release
here.
Be sure to scroll to the bottom and choose the jar file with the most
recent time stamp.
You’ll need to add the following configuration to your Maven ~/.m2/settings.xml
to be able to use these with Maven:
<profiles>
<!-- to allow loading Jakarta snapshot artifacts -->
<profile>
<id>jakarta-snapshots</id>
<pluginRepositories>
<pluginRepository>
<id>jakarta-snapshots</id>
<name>Jakarta Snapshots</name>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<url>https://jakarta.oss.sonatype.org/content/repositories/snapshots/</url>
<layout>default</layout>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
And then when you build use mvn -Pjakarta-snapshots ...
.
If you want the plugin repository to be enabled all the time so you don’t need the -P, add:
<activeProfiles>
<activeProfile>jakarta-snapshots</activeProfile>
</activeProfiles>
Jakarta Mail for Android
The latest release includes support for Jakarta Mail on Android.
See the Android page for details.
Project Documentation
You’ll find more information about the protocol providers supported by
Jakarta Mail on the following pages:
If you’re interested in writing your own protocol provider (most people
won’t need to), you can find more documentation on protocol providers
here.
The use of
OAuth2 authentication
with Jakarta Mail is described here.
The following pages provide hints and tips for using particular mail servers:
The following pages provide hints and tips for using Jakarta Mail on
particular operating systems or environments:
See Build Instructions for instructions on how to
download and build the most recent Jakarta Mail source code. You can also
find a bundle of the source code for the most recent Jakarta Mail release
in the Releases area of
this project.
If you’re interested in contributing to Jakarta Mail, see the
Contributions page.
You can find a list of products related to Jakarta Mail on the
Third Party Products page.
Please see our page of
links to additional information about Jakarta Mail and Internet email
and our list of
books about Jakarta Mail and Internet email.
To understand the Jakarta Mail license, see the License page.