What's New in Aspose.Email for .NET
Aspose.Email for .NET 25.8
-
The
X500Addressproperty of the MailAddress class provides access to the email address in Exchange (X.500) format, if available. -
The
Aspose.Email.Clients.Graph.ODataQueryBuilderclass simplifies the construction of OData query parameters for Microsoft Graph. This enhancement enables advanced filtering, ordering, selection, and paging when working with Graph data. -
The
Aspose.Email.Clients.Graph.IGraphClientAsyncinterface enables asynchronous operations with the GraphClient for improved performance and responsiveness.
Aspose.Email for .NET 25.7
- Extract externally linked image resources from the HTML body and embed them directly into the HTML output. The original appearance of email messages containing linked content is preserved when saving or processing emails. The HtmlSaveOptions.ExtractHTMLBodyResourcesAsAttachments - when set to true - extracts linked images and other resources from the HTML body and embeds them as attachments, maintaining the message’s visual fidelity.
Aspose.Email for .NET 25.6
-
Enumerate messages that have been deleted twice (soft-deleted) in PST files. The PersonalStorage.FindAndEnumerateSoftDeletedItems() method returns an enumerable collection of RestoredItemEntry objects, each containing a deleted MapiMessage and its corresponding FolderId.
-
Retrieve folder contents from PST files in a paginated manner using the overloaded FolderInfo.GetContents(MailQuery query, int startIndex, int count) method which retrieves a subset of messages that match the specified query, starting from a given index and limited by a count.
Aspose.Email for .NET 25.4
-
Several classes have been updated with asynchronous methods to enhance scalability and performance in modern applications. They improve working with TGZ, PST, MBOX and VCard files.
-
The MapiContact.FromVCard method is now overloaded and accepts a VCardLoadOptions parameter instead of an encoding.
Aspose.Email for .NET 25.3
-
Save and load attachments in TNEF format, commonly used in Outlook messages (winmail.dat). Use the following methods:
- static MapiAttachment MapiAttachment.LoadFromTnef(string fileName) – Loads an attachment from a TNEF file.
- static MapiAttachment MapiAttachment.LoadFromTnef(Stream stream) – Loads an attachment from a TNEF stream.
- void MapiAttachment.SaveToTnef(string filename) – Saves an attachment to a TNEF file.
- void MapiAttachment.SaveToTnef(Stream stream) – Saves an attachment to a TNEF stream.
-
Set the state of a MapiCalendar object, overriding its default behavior explicitly using the void MapiCalendar.SetStateForced(MapiCalendarState state) method.
Aspose.Email for .NET 25.2
-
Filter or search messages within MBOX files using a query. Retrieve only the messages that match specific criteria. Improve performance and usability when working with large MBOX files.
-
Retrieve messages in smaller batches using paginated retrieval. This feature allows for reducing memory consumption and improving performance when processing large MBOX files.
Aspose.Email for .NET 25.1
- Expand your capabilities for working with Gmail messages using the IGmailClient interface. Developers can now list, fetch, send, append, and delete emails, as well as manage Gmail filters programmatically.
Aspose.Email for .NET 24.12
- Customize MIME boundary strings through the new EmlSaveOptions.BoundariesTemplate property. This feature provides greater control over boundary formatting — the {#} placeholder in the template is automatically replaced with the boundary number, allowing dynamic and personalized boundary string generation.
Aspose.Email for .NET 24.11
-
Improve reference attachments handling with the following new members:
- overload MapiAttachmentCollection.Add method - Adds a reference attachment to the collection using the specified name and configuration options.
- ReferenceAttachmentOptions class - Defines reference attachment properties by configuring options for adding an attachment to a MAPI message.
- IsReference property - Identifies reference attachments in a message.
-
Enhance message search and retrieval with the new overloaded methods in the FolderInfo class:
- IEnumerable
EnumerateMessages(MailQuery mailQuery) - Filter messages using a MailQuery. - IEnumerable
EnumerateMessages(MessageKind kind) - Retrieve messages by type (MessageKind). - IEnumerable
EnumerateMessages(int startIndex, int count) - Paginate message retrieval using a starting index and count.
- IEnumerable
-
Customize the base URL for the SendGrid client using the SendGridRegion enumeration and related properties in the SendGridClientOptions class.
-
Enable secure connection to GCC High O365 endpoints with the EndPoint property of the GraphClient class.
Aspose.Email for .NET 24.10
- Access user reactions in MSG files. The new GetReactions method, added to the FollowUpManager class, allows you to retrieve a list of reactions on a MAPI message, making it easy to analyze user engagement.
Aspose.Email for .NET 24.9
-
Add custom headers when creating an instance of IEWSClient. This feature is particularly useful for scenarios where specific headers are required during client initialization, such as the
X-AnchorMailboxheader in EWS. -
Retrieve category colors from PST files. Access a list of categories along with their names and assigned colors, making it easier to maintain visual consistency and improve data organization when processing Outlook data.
Aspose.Email for .NET 24.6
-
Access, manage, and interact with users’ tasks and task lists in Microsoft Graph with the following methods of the IGraphClient interface:
- ListTaskLists() - Retrieves a collection of task list information.
- GetTaskList(string id) - Retrieves a specific task list based on the provided ID.
- DeleteTaskList(string id) - Deletes the specified task list.
- ListTasks(string id - Retrieves a collection of tasks associated with the specified task list ID.
- FetchTask(string id) - Retrieves a specific task based on the provided ID.
- CreateTask(MapiTask task, string taskListUri) - Creates a new task in the specified task list.
- UpdateTask(MapiTask task) - Updates an existing task with the provided information.
- UpdateTask(MapiTask task, UpdateSettings updateSettings) - Updates an existing task with specified update settings.
-
You can cancel ongoing MBOX split operations when needed without restarting the entire workflow. Developers can now use a
CancellationToken(in .NET Framework 4.5 and .NET Core) or the new Cancel() method (for earlier .NET versions) to safely interrupt long-running split processes.
Aspose.Email for .NET 24.5
-
Extract recipients from messages stored in a PST file.
- by specifying a message entry ID.
- by iterating through all messages in the Inbox folder, and extracting the recipients from each message.
This feature is available in the PersonalStorage class.
-
Recover soft deleted items from local PST and OST files.
-
Convert multi-contact VCF files into a distribution list.
Aspose.Email for .NET 24.3
- Support for Contacts and Calendar in MS Graph - IGraphClient interface methods allow you to access, manage, and interact with users’ contacts and calendar events:
- Retrieve a collection of MAPI contacts.
- Retrieve a specific contact.
- Create a new contact.
- Update an existing contact.
- Retrieve a collection of calendar information.
- Retrieve a collection of calendar items.
- Retrieve a specific calendar item.
- Create a new calendar item.
- Updates an existing calendar item.
Aspose.Email for .NET 24.2
-
Manipulate Outlook Item Categories - Aspose.Email makes it possible to retrieve and utilize category colors associated with Outlook item categories stored in OLM files.
-
Container Class Matching - a new EnforceContainerClassMatching property was added to the FolderCreationOptions class which, when adding a folder to a PST file, allows you to ensure that the class of the folder matches the expected type or category of folders within the PST file.
Aspose.Email for .NET 23.12
- Setting Relative Path to Resources when Saving Email Message as HTML - Aspose.Email introduces the ability to save email resources with relative paths when exporting messages to HTML format, offering enhanced flexibility for resource linking. Users can choose between absolute and relative paths, and define custom paths using the ResourceHtmlRendering event, streamlining the sharing and display of emails across different systems.
Aspose.Email for .NET 23.11
-
Validate Email Messages - A set of components was added to enable users validate message files, supporting formats such as eml, emlx, mht, msg, and oft. By utilizing this functionality, users can validate messages and retrieve insights into the validation process, including format type and encountered errors.
-
Attach Digital Signatures to Email Messages - The AttachSignature method in the SecureEmailManager class was designed to easily add a digital signature to an email.
Once the signature is attached, users can verify the results through properties like ‘IsSigned’, ‘MessageClass’, and attachment details.
To customize the signature attachment process, users can utilize the SignatureOptions class.
Aspose.Email for .NET 23.10
-
Split Mbox Storage into Smaller Parts - split large files into manageable parts and implement custom actions during the process:
- Specify a custom prefix for the split Mbox file names.
- Customize actions before and after an email is copied to a new Mbox file.
- React when a new Mbox file is created.
- Respond when a new Mbox file is filled with emails.
-
Get AlternateView Content by MediaType - retrieve the content as a string from a specific AlternateView within an email message. The MailMessage.GetAlternateViewContent(string mediaType) method allows you to access the content from an AlternateView that matches the specified media type.
Aspose.Email for .NET 23.8
-
Send Emails via Graph Client - added the support for overloaded methods to the GraphClient class that accept a MailMessage object for sending emails:
-
Save Mapi Distribution List to a Single Multi Contact VCF File - Save the Mapi Distribution List to a specified file name using the provided save options. You can provide the file name and an instance of the MapiDistributionListSaveOptions class as parameters.
- void Save(string fileName, MapiDistributionListSaveOptions options) method has been added for this purpose.
Aspose.Email for .NET 23.7
- Delete Items from PST - We have added a new method, DeleteItem(string entryId), to the PersonalStorage class. This method provides a way to delete items (folders or messages) from a Personal Storage Table (PST) using the unique entryId associated with the item.
- Event Handling and PST Splitting - Improved Functionality in PersonalStorage class:
-
StorageProcessingEventHandler event occurs before the storage is processed, specifically before processing the current storage in MergeWith or SplitInto methods. This event provides an opportunity to execute custom logic or handle certain operations before the storage processing occurs.
-
StorageProcessingEventArgs class provides data for the PersonalStorage.StorageProcessing event.
-
SplitInto(long chunkSize, string partFileNamePrefix, string path) overload method allows the splitting of the PST storage into smaller-sized parts.
-
- Calendar Handling - New properties and a method were added to the CalendarReader class:
- Count property allows you to retrieve the number of Vevent components (events) present in the calendar, making it easier to track the total number of events.
- IsMultiEvents property determines whether the calendar contains multiple events.
- Method property obtains the iCalendar method type associated with the calendar object. It returns the method type, such as “REQUEST,” “PUBLISH,” or “CANCEL,” providing valuable insights into the purpose of the calendar.
- Version gets the Version of iCalendar.
- LoadAsMultiple() method enables the loading of a list of events from a calendar containing multiple events. It returns a list of Appointment objects, allowing easy access and processing of each event individually.
Aspose.Email for .NET 23.6
-
Preserve or Remove Signature in MBOX to PST Conversion - set the MboxToPstConversionOptions.RemoveSignature property to ’true’ to remove the signature.
-
Remove Signature when Loading EML Files - set the LoadOptions.RemoveSignature property to ’true’ to remove the signature.
-
Email Signature Check
- Added a new SecureEmailManager class for checking the signature of secure emails. You can now check the signature of MapiMessage and MailMessage objects.
- Added a new SmimeResult class to store the results of checking secure emails.
Introduced methods of the SecureEmailManager:
- CheckSignature(MapiMessage msg)
- CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt)
- CheckSignature(MapiMessage msg, X509Certificate2 certificateForDecrypt, X509Store store)
- CheckSignature(MailMessage msg)
- CheckSignature(MailMessage msg, X509Certificate2 certificateForDecrypt)
- CheckSignature(MailMessage msg, X509Certificate2 certificateForDecrypt, X509Store store)
Aspose.Email for .NET 23.5
- Determine the Version of ICS/VCS Files - Use the Version property of the Appointment class to retrieve the version of ICS/VCS files.
- Customize Saving Options for VCard Files - We added the new VCardSaveOptions class to our API with the following properties:
- VCardVersion enables users to specify the desired vCard version when saving contact items. By default, the class is set to use vCard version 2.1 (VCardVersion.V21).
- UseExtensions - allows users to control whether extended fields can be used when saving vCard files. When set to true (default), extensions are permitted, providing compatibility with custom fields and additional contact information.
- PreferredTextEncoding - the encoding to be used when saving vCard contact items.
- Get Total Number of Message Items Contained in the Zimbra Storage with the GetTotalItemsCount() method of the TgzReader class.
- Retrieve a PST subfolder by path - Retrieve a subfolder with the specified name from the current PST folder using the FolderInfo.GetSubFolder(string name, bool ignoreCase, bool handlePathSeparator) method overload.
Aspose.Email for .NET 23.4
- Add a Reference Attachment to a Message - We have added a new Add method to the MapiAttachmentCollection class with the following parameters: ’name’ - the name of attachment ‘sharedLink’ - a fully qualified shared link to the attachment provided by web service manipulating the attachment ‘url’ - a file location ‘providerName’ - a name of reference attachment provider
- Multiple VCard Contacts Check - Check whether a source file contains multi contacts with the new VCardContact.IsMultiContacts(string filePath) method.
- Convert Calendar ICS Format to Message Formats - Convert appointments to message objects such as MapiMessage and MailMessage.
- Additional Options for Saving Messages in HTML and MHTML Formats:
- MapiTask.Priority - Gets or sets the current Priority of the Task object.
- MhtSaveOptions.SaveAllHeaders - Defines whether there is a need to save all headers in output mhtml or not.
- HtmlFormatOptions.RenderTaskFields - Indicates that the specific Task fields should be written in output html.
- Set Timeout to Message Conversion and Loading Process - Limit the time in milliseconds while converting and loading messages, ensuring that the process does not take longer than necessary. For this purpose, the following features have been introduced:
- MailConversionOptions.Timeout - Limits the time in milliseconds while converting a message.
- MailConversionOptions.TimeoutReached - Raised if the time is out while converting to MailMessage.
- MsgLoadOptions.Timeout - Limits the time in milliseconds while converting a message.
- MsgLoadOptions.TimeoutReached - Raised if the time is out while converting to MailMessage.
Aspose.Email for .NET 23.3
- Get the Total Number of Message Items Contained in the OLM Storage with the GetTotalItemsCount() method to OlmStorage class.
- Determine if MapiMessage is OFT or MSG - Determine whether the MapiMessage was loaded from an OFT or MSG file with the new MapiMessage.IsTemplate property.
- Detect a NSF File Format
Aspose.Email for .NET 23.1
-Retrieve message properties from MboxMessageInfo - Get access to the information about individual messages stored in an mbox file, such as message size, message index, message headers, message flags, and other message-related metadata. We have added the following properties to MboxMessageInfo class:
DateTime Date - Gets the date of message MailAddress From - Gets the from address string Subject - Gets the message subject MailAddressCollection To - Gets the address collection that contains the recipients of message MailAddressCollection CC - Gets the address collection that contains CC recipients MailAddressCollection Bcc - Gets the address collection that contains BCC recipients of message
Aspose.Email for .NET 22.12
- Get the total number of message items contained in the PST - We have added the GetTotalItemsCount() method to PersonalStorage.Store property.
- Get a Standard RSS Feeds Folder in Personal Storage, Add a Standard RSS Feeds Folder in PST - A new RssFeeds value has been added to StandardIpmFolder enum. Now the RSS Feeds Folder can be easily retrieved or added to the storage.
- Decrypt an Email Message Stored in the MAPI Format - We have added a Decrypt method to the MapiMessage class:
- MapiMessage.IsEncrypted - Gets a value indicating whether the message is encrypted.
- MapiMessage.Decrypt() - Decrypts this message (method searches the current user and computer My stores for the appropriate certificate and private key).
- MapiMessage.Decrypt(X509Certificate2 certificate) - Decrypts this message with certificate.
- Setting a Product ID when Saving MapiCalendar to ICS - We have added ProductIdentifier property to MapiCalendarIcsSaveOptions class.
- Extract Messages by Identifiers from OLM and MBOX - This is the efficient way to avoid traversing through the entire storage each time to find a specific message to extract.
- Determine whether the Attachment is Inline or Regular with the MapiAttachment.IsInline property.
Aspose.Email for .NET 22.11
- Get a MAPI Item Type - Avoid checking the MessageClass property value every time before message conversion.
- Remove Signature from MapiMessage - For better compatibility, the MapiMessage.RemoveSignature method and MapiMessage.IsSigned property were added.
- Identifying Predefined Folders - The new FolderInfo method, GetPredefinedType, has been introduced to determine if a folder is within a predefined folder by returning the StandardIpmFolder enum value based on the specified parameter value.
- Verifying Attachment TNEF Format - The Attachment.IsTnef property indicates whether the message attachment is TNEF formatted message.
Aspose.Email for .NET 22.10
- Renaming an Attachment in MapiMessage - Now it is possible to edit the DisplayName property value in MapiMessage attachments.
Aspose.Email for .NET 22.9
- List Messages with Graph API - The new OrderBy method allows you to control the ordering of the retrieved messages based on the criteria you specify.
Aspose.Email for .NET 22.8
- Reading Messages from MBOX - We have introduced new features for configuring loading options:
- MailStorageConverter.MboxMessageOptions property - Gets or sets email load options when parsing an Mbox storage.
- MboxrdStorageReader.ReadNextMessage(EmlLoadOptions options) method. EmlLoadOptions parameter specifies options when reading message from Mbox storage.
Aspose.Email for .NET 22.7
- Get Message Identification Info such as UID or sequence number using the following features:
- MailboxInfo class - Represents identification information about a message in a mailbox.
- SequenceNumber property - The sequence number of a message.
- UniqueId property - The unique id of a message.
- MailMessage.ItemId property - Represents identification information about a message in a mailbox.
Aspose.Email for .NET 22.6
- Preserving Original Timestamp in ICS Files - Extract calendar items from PST files and save them in ICS format with the original timestamp using the following options:
- MapiCalendarIcsSaveOptions - Allows specifying additional options when saving MapiCalendar to ICS format.
- MapiCalendarIcsSaveOptions.KeepOriginalDateTimeStamp - Allows keeing the original DateTimeStamp value in the output file.
Aspose.Email for .NET 22.5
- Enumerate Messages with Paging Support via Graph Client - The API provides the paging and filtering support for listing messages. This is very helpful where the mailbox has a large number of messages and requires a lot of time for retrieving the summary information about these.
- Asynchronous Mode in Handling Mail Clients - A new approach to the task includes the following API members:
- IAsyncSmtpClient - Allows applications to send messages by using the Simple Mail Transfer Protocol (SMTP).
- SmtpClient.CreateAsync - Creates a new instance of the Aspose.Email.Clients.Smtp.SmtpClient class.
- IAsyncSmtpClient.SendAsync(Aspose.Email.Clients.Smtp.Models.SmtpSend) method parameter set.
- IAsyncSmtpClient.ForwardAsync(Aspose.Email.Clients.Smtp.Models.SmtpForward) arguments.
- IAsyncImapClient - Allows applications to access and manipulate messages by using the Internet Message Access Protocol (IMAP).
- ImapClient.CreateAsync - Creates a new instance of the Aspose.Email.Clients.Imap.ImapClientclass.
Aspose.Email for .NET 22.4
- Send Email with MailGun and SendGrid Delivery Services - We have created a unified API which you can use to initialize options depending on which service is going to be used for sending messages, call the required client instance using the builder, prepare and send an email message. There is also an asynchronous version of the Send method.
- Set the X-ALT-DESC header in ICS file - We introduced a new HtmlDescription property to set the X-ALT-DESC header.
Aspose.Email for .NET 22.3
- List Message Attachments using IMAP Client - Get information about attachments such as name, size without fetching the attachment data.
API members involved in the operation:
- Aspose.Email.Clients.Imap.ImapAttachmentInfo - Represents an attachment information.
- Aspose.Email.Clients.Imap.ImapAttachmentInfoCollection - Represents a collection of ImapAttachmentInfo.
- Aspose.Email.Clients.Imap.ListAttachments(int sequenceNumber) - Gets an information for each attachment in message.
- Fetch Items with Attachments via EWS Client - We added the FetchItems(EwsFetchItems options) method to EwsClient. It accepts an instance of EwsFetchItems class as a parameter to control the behavior of the method.
Aspose.Email for .NET 22.2
- Adding Reference Attachments
Introduced API members:
- Aspose.Email.ReferenceAttachment - represents a reference attachment.
- Aspose.Email.AttachmentPermissionType - The permission type data associated with a web reference attachment.
- Aspose.Email.AttachmentProviderType - The type of web service manipulating the attachment.
- Retrieve message class - We have added MessageClass property to ExchangeMessageInfo class to retrieve the class of each message in the collection from a public folder, after establishing a connection to an EWS client.