Aspose.Email for Java 21.7 Release Notes

All Changes

EMAILNET-40250Using CRAM-MD5 authentification with ImapClientFeature
EMAILNET-40256Newest API for SmtpClientFeature
EMAILNET-40326Encoding options for MboxrdStorageReader classEnhancement
EMAILNET-40310Appointment Sub Type is missing when load modified occurrences(embedded message)Enhancement
EMAILNET-40328HTML default header formating optionsEnhancement
EMAILJAVA-34916Spacing in headers lost after converting to PDFEnhancement
EMAILJAVA-34898Reading Importance and Class properties from ICS fileEnhancement
EMAILJAVA-34868AsposeException is thrown when importing a calendar event into a PST fileEnhancement
EMAILNET-40306Embedded message does not get updatedBug
EMAILNET-40309Body text is missing in exported MHTBug
EMAILJAVA-34919Regressions: NullPointerException when calling MailMessageBug
EMAILNET-40293EML attachments lost while saving mails to Office 365 folderBug
EMAILNET-40291Messages differ after saving and loading TnefBug
EMAILNET-40279MapiCalendar cannot get some event’s recurrence periodBug
EMAILNET-40304Unable to investigate all contactsBug
EMAILJAVA-34915MapiCalendar recurrence pattern process is stuckBug
EMAILNET-40316Exception on removing the signature from emailBug
EMAILJAVA-34912Exception on removing the signature from emailBug
EMAILJAVA-34926Headers are squashed when converting EML to HTMLBug

New Features

Added CRAM-MD5 authentication

The ability to authenticate using the CRAM-MD5 mechanism in IMAP, POP3, and SMTP clients has been added. The following code samples show how to use this feature.

IMAP client:


POP3 client:


SMTP client:


Encoding option for MboxrdStorageReader class

We have added the ability to set preferred text encoding when loading Mbox files for reading.

MboxLoadOptions lo = new MboxLoadOptions();
MboxrdStorageReader reader = new MboxrdStorageReader("sample.mbox", lo);
MailMessage message = reader.readNextMessage();

Using the global formatting options for the Mht header

The global options set the common formatting of an Mht header for all MhtSaveOptions instances. This is to avoid setting formatting for each instance of MhtSaveOptions.


// saveOptions1 and saveOptions2 have the same mht header formatting
MhtSaveOptions saveOptions1 = new MhtSaveOptions();
MhtSaveOptions saveOptions2 = new MhtSaveOptions();