Page tree
Skip to end of metadata
Go to start of metadata

JavaMail Library 2 POP3 Adapter and SMTP Adapter provide basic email receiving and sending. However, these adapters do not offer advanced features such as imap/imaps/smtps support, ssl/starttls encryption or selective access by folder, date and time, subject etc. In scenarios where such advanced features are required, we recommend the use of the JavaMail library.

JavaMail library aims at providing the means to interact with all modern email servers through a common API with the convenience of a pre-packaged, ready to use Bridge xUML library. The API is available through one library class that defines all operations, whose parameters refer to the underlying Java implementation. After importing the JavaMail library, there is no need to import any further components, java classes etc. - you can start using it in your project right away.

Compatibility

The current version 2 introduces breaking changes with version 1. Version 2 is available for Bridge Release 7 onwards.

If you need compatibility with Release 6, please refer to version 1.7.0. Documentation of the latest features of version 1 is available on Documentation up to version 1.7.0 (obsolete).
The currently released version 2.0.0 contains also the classes from version 1.7.0 to ease migration. However, these are now longer supported and will eventually be dropped.

Features

FeatureSupportComment
ProtocolsIMAP, IMAPS, POP3, POP3S, STMP, SMTPS, EWS (MS Exchange)

EWS is an HTTP based web service protocol, requiring the Exchange Web Service to be activated on the respective Exchange Server.

The EWS Java SDK has meanwhile been succeeded by Microsoft's Java SDK for the Graph API. This library will likely be migrated to use the Graph API in the future, depending on demand. For the time being, the EWS API is used.

SecuritySSL and STARTTLS for IMAP/POP3/SMTP, HTTPS for EWS

For host verification the corresponding certificate must either be known by the underlying JVM or provided within the keystore on the connection (see Keys and Certificates)

Signed MailS/MIME (RFC 3852) and PGP (RFC 4880, RFC 3156)Only for receiving email, sending signed emails is not yet supported. Receiving PGP "compressed" signed messages is also not yet supported (PGP signature verification requires the public keys of the signer(s), see Keys and Certificates)
Encrypted Mailnot yet supportedEncrypted messages will be read, but not decrypted. You will receive the envelope without content and the status will indicate success=false.
Filtered Readingreceive date, subject, sender, attachment name, and unread status
Attachmentsappend file attachments on sending, and receiving attachmentsImage attachments can be sent as inline images using CIDs in the HTML message.

Supported Operations

All operations can be accessed through the MailClient class.

All operations require a connection object. Details on it and its attributes are explained on Mail Server Connection.

The library supports

Operations may throw exceptions. In cases where the underlying Java code throws exceptions that are anticipated, these are translated into xUML exception signatures. For unexpected (not anticipated) exceptions in the Java code, a generic xUML exception is thrown.

Folder Handling

Operations expecting a folderPath argument will treat this the following way:

Folder PathDescription Example
NULL

This is interpreted as meaning the <Inbox> folder.


path beginning with / This is interpreted as a path from the mail connections root folder./Archive/Orders
path not beginning with /

This is interpreted as a relative path to the <Inbox> folder, so translates to /<Inbox>/Archive/Orders.

Archive/Orders 

The intention of this behavior is to abstract away the fact that <Inbox> has many different names depending on the connection, i.e. IMAP typically uses INBOX, Exchange calls it Inbox, and a German Exchange calls it Posteingang.

Also note that POP3 does not support folders other than <Inbox>. Hence when you specify a POP3 connection, folderPath parameters other than NULL will raise an exception.

Used Open Source Libraries

This library makes use of a number of OpenSource libraries. The following table lists the main dependent Java Open Source libraries that are used.

LibraryInformationVersionLicense
EWS Managed API

https://github.com/OfficeDev/ews-java-api

2.0MIT License
Oracle Java Mailhttps://javaee.github.io/javamail/1.6.2CDDL/GPLv2+CE
Bouncy Castlehttps://www.bouncycastle.org/index.html1.64Bouncy Castle Licence (MIT License)
Apache HTTP Componentshttps://hc.apache.org/4.5.3 (client) / 4.4.6 (core)Apache License 2.0
Apache Commons Emailhttps://commons.apache.org/proper/commons-email/1.5Apache License 2.0
  • No labels