Browse our Products

Aspose.Email for .NET 22.4 Release Notes

All Changes

KeySummaryCategory
EMAILNET-40511Mailgun clients implementationFeature
EMAILNET-40512SendGrid client implementationFeature
EMAILNET-40564Provide correct Description of Appointment regardless of the order of properties Description and IsDescriptionHtml.Enhancement
EMAILNET-40563Imap connectivity issue with Aspose.Email v22.2Bug
EMAILNET-40578Attachment name for non ASCII character is incorrect after EML to TXT conversionBug
EMAILNET-40588Performance issue while loading EML messagesBug
EMAILNET-40585Issue with To and From emails while loading MSG with MsgLoadOptionsBug
EMAILNET-40580Application hangs while ListFolders by Graph client.Bug
EMAILNET-40566MSG cannot open with x64 mode and throws exception with x86Bug
EMAILNET-40579IMAP System.FormatException is thrown by Client.FetchMessageBug
EMAILNET-40573Regression: An appointment extracted (.msg) from PST cannot open in Outlook 2016Bug
EMAILNET-40572Regression: Messages extracted from a PST have additional bits in their SubjectBug

New Features

Working with MailGun and SendGrid delivery services

We’ve added the ability to send messages using MailGun or SendGrid services. We have created a unified API, so the first thing is to initialize options depending on which service is going to be used for sending messages.

MailGun client options.

string domain = "YOUR_MAILGUN_DOMEN";
string privApiKey = "YOUR_MAILGUN_PRIVATE_API_KEY";
var opt = new MailgunClientOptions { Domain = domain, ApiKey = privApiKey };

SendGrid client options.

string privApiKey = "YOUR_SENDGRID_PRIVATE_API_KEY";
var opt = new SendGridClientOptions { ApiKey = privApiKey };

Then, call the required client instance using the builder.

IDeliveryServiceClient client = DeliveryServiceClientFactory.Get(opt);

Finally, prepare and send an email message.

MailMessage eml = new MailMessage(fromAddress, toAddress, subject, body);

var resp = client.Send(eml);

if (!resp.Successful)
{
    foreach (var error in resp.ErrorMessages)
    {
        Console.WriteLine(error);
    }
}

There is also an asynchronous version of the Send method.

MailMessage eml = new MailMessage(fromAddress, toAddress, subject, body);

var sendTask = client.SendAsync(eml);
sendTask.Wait();

if (!sendTask.Result.Successful)
{
    foreach (var error in sendTask.Result.ErrorMessages)
    {
        Console.WriteLine(error);
    }
}

Changes in the setting of the X-ALT-DESC header in ICS file

We introduced a separate HtmlDescription property instead of the IsDescriptionHtml property to set the X-ALT-DESC header.

var appointment = new Appointment("Bygget 83",
    DateTime.UtcNow, // start date
    DateTime.UtcNow.AddHours(1), // end date
    new MailAddress("TintinStrom@from.com", "Tintin Strom"), // organizer
    new MailAddress("AinaMartensson@to.com", "Aina Martensson")) // attendee
{
    HtmlDescription = @"
    <html>
     <style type=""text/css"">
      .text {
             font-family:'Comic Sans MS';
             font-size:16px;
            }
     </style>
    <body>
     <p class=""text"">Hi, I'm happy to invite you to our party.</p>
    </body>
    </html>"
};