The Angus Mail project is a compatible implementation of
the Jakarta Mail Specification 2.1+ providing a platform-independent and
protocol-independent framework to build mail and messaging applications.
It is available for use with the
Java SE platform
and in the Jakarta EE platform.
This project does not support the
Java EE platform.
See Jakarta Mail for the version supporting
the Java EE platform
and versions 8 and 9 of the Jakarta EE platform.
This project is part of Eclipse Angus project.
Table of Contents
Latest News
March 4, 2024 - Angus Mail 2.0.3 Final Release
A bug fix release of 2.0.x bringing latest bug fixes
and enhancements. See CHANGES.txt
for the full list of changes.
May 12, 2023 - Angus Mail 2.0.2 Final Release
A bug fix release of 2.0.x fixing integration with OSGi Mediator,
optionality of HK2 service locator and improved compatibility with Java SE 8.
January 26, 2023 - Angus Mail 2.0.1 Final Release
A bug fix release of 2.0.0 fixing compatibility with Java SE 8.
January 24, 2023 - Angus Mail 2.0.0 Final Release
Changes com.sun.mail
module name prefix
to org.eclipse.angus.mail
and package name prefix from
com.sun.mail
to org.eclipse.angus.mail
.
January 11, 2023 - Angus Mail 1.1.0 Final Release
Adds built-in support for GraalVM native-image, support for OSGi Mediator Specification,
and contains multiple bug fixes and small enhancements.
native-image option |
description |
value |
angus.mail.native-image.enable |
Turn on built-in support for native image |
false / true (default) |
angus.mail.native-image.trace |
Print log messages to System.out |
false (default) / true |
December 14, 2021 - Angus Mail 1.0.0 Final Release
Initial release of the Eclipse Angus - Angus Mail project.
Provides implementation of the Jakarta Mail 2.1 Specification.
The main jar file is now located at
org.eclipse.angus:angus-mail.
August 18, 2021 - Jakarta Mail moves to Eclipse Angus
To break tight integration between Jakarta Mail Specification API and the implementation,
sources of the implementation were moved to this project and further development continues here.
Angus Mail is the direct successor of JavaMail/JakartaMail.
Download Angus Mail Release
The latest release of Angus Mail is 2.0.3.
The following table provides easy access to the latest release. Most
people will only need the main Angus Mail implementation in the
angus-mail.jar
and jakarta.mail-api.jar
files together
with the Angus Activation
on the module path or on the class path.
Item |
Description |
angus-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 Angus Mail |
SSLNOTES.txt |
Notes on using SSL/TLS with Angus Mail |
NTLMNOTES.txt |
Notes on using NTLM authentication with Angus Mail |
CHANGES.txt |
Changes since the previous release |
COMPAT.txt |
Important notes about compatibility |
In addition, the Angus Mail jar files are published to the Maven repository.
The main Angus Mail jar file, which is all most applications will need,
can be included using this Maven dependency:
<dependencies>
<dependency>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.angus</groupId>
<artifactId>angus-mail</artifactId>
<version>2.0.3</version>
<scope>runtime</scope>
</dependency>
</dependencies>
You can find all of the Angus project jar files in
Maven Central. They can be used in following configurations:
Preferred way of using Angus Mail jar files is to use Jakarta Mail API with Angus Mail runtime:
jar file |
module name |
groupId |
artifactId |
Description |
jakarta.mail-api.jar |
jakarta.mail |
jakarta.mail |
jakarta.mail-api |
The Jakarta Mail API definitions only, suitable for compiling against |
angus-mail.jar |
org.eclipse.angus.mail |
org.eclipse.angus |
angus-mail |
The Angus Mail runtime jar file, including the SMTP, IMAP, and POP3 protocol providers and java.util.logging handler |
gimap.jar |
org.eclipse.angus.mail.gimap |
org.eclipse.angus |
gimap |
An EXPERIMENTAL Gmail IMAP protocol provider that supports Gmail-specific features |
dsn.jar |
org.eclipse.angus.mail.dsn |
org.eclipse.angus |
dsn |
Support for parsing and creating messages containing Delivery Status Notifications |
Alternatively, jakarta.mail.jar, which includes Jakarta Mail APIs with Angus Mail runtime as a default provider in one
jar file, can be used, ie to limit the length of the classpath or number of dependencies:
jar file |
module name |
groupId |
artifactId |
Description |
jakarta.mail.jar |
jakarta.mail |
org.eclipse.angus |
jakarta.mail |
The Angus Mail implementation jar file, including the Jakarta Mail API, SMTP, IMAP, and POP3 protocol providers and java.util.logging handler |
gimap.jar |
org.eclipse.angus.mail.gimap |
org.eclipse.angus |
gimap |
An EXPERIMENTAL Gmail IMAP protocol provider that supports Gmail-specific features |
dsn.jar |
org.eclipse.angus.mail.dsn |
org.eclipse.angus |
dsn |
Support for parsing and creating messages containing Delivery Status Notifications |
Finally, for fine-grained control over the providers in use, following jar files can be used:
jar file |
module name |
groupId |
artifactId |
Description |
jakarta.mail-api.jar |
jakarta.mail |
jakarta.mail |
jakarta.mail-api |
The Jakarta Mail API definitions only, suitable for compiling against |
angus-core.jar |
org.eclipse.angus.mail |
org.eclipse.angus |
angus-core |
The Angus Mail runtime with no protocol providers; use with one of the following providers |
gimap.jar |
org.eclipse.angus.mail.gimap |
org.eclipse.angus |
gimap |
An EXPERIMENTAL Gmail IMAP protocol provider that supports Gmail-specific features |
dsn.jar |
org.eclipse.angus.mail.dsn |
org.eclipse.angus |
dsn |
Support for parsing and creating messages containing Delivery Status Notifications |
smtp.jar |
org.eclipse.angus.mail.smtp |
org.eclipse.angus |
smtp |
The SMTP protocol provider |
imap.jar |
org.eclipse.angus.mail.imap |
org.eclipse.angus |
imap |
The IMAP protocol provider |
pop3.jar |
org.eclipse.angus.mail.pop3 |
org.eclipse.angus |
pop3 |
The POP3 protocol provider |
logging-mailhandler.jar |
org.eclipse.angus.mail.util.logging |
org.eclipse.angus |
logging-mailhandler |
A java.util.logging handler that uses Jakarta Mail, suitable for use in Google App Engine. |
Angus Activation provides following jar files:
jar file |
module name |
groupId |
artifactId |
Description |
jakarta.activation-api.jar |
jakarta.activation |
jakarta.activation |
jakarta.activation-api |
The Jakarta Activation API definitions only, suitable for compiling against |
angus-activation.jar |
org.eclipse.angus.activation |
org.eclipse.angus |
angus-activation |
The Angus Activation runtime |
API Documentation
The Jakarta Mail API is defined through the
Jakarta EE Specification Process.
The Jakarta Mail specification and API documentation are available
here.
Samples
Some sample programs showing how to use the Jakarta Mail APIs are available
here.
Help
Please read the
Angus Mail FAQ!
Read it again. Tell everyone you know to read it. Thank you!
You can post questions to the
angus-dev mailing list.
Or, post a question on Stack Overflow using the
javamail tag.
Bugs
Angus Mail bugs are tracked in the
GitHub Angus Mail project issue tracker.
Development Releases
From time to time snapshot releases of the next version of Angus 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 Angus 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>
Angus Mail for Android
The latest release includes support for Angus Mail on Android.
See the Android page for details.
Project Documentation
You’ll find more information about the protocol providers supported by
Angus 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 Angus 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 Angus Mail source code. You can also
find a bundle of the source code for the most recent Angus Mail release
in the Releases area of
this project.
If you’re interested in contributing to Angus Mail, see the
Contributions page.
You can find a list of products related to JavaMail/Jakarta Mail/Angus 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 Angus Mail license, see the License page.