Browse our Products

Aspose.Email for .NET 26.6 Release Notes

All Changes

KeySummaryCategory
EMAILNET-41773Support ProductIdentifier field for Contact and AppointmentEnhancement
EMAILNET-39862MapiMessageItemBase.SetProperty produces wrong property for multiple valuesBug
EMAILNET-41788Performance regression for EML files (introduced in 23.3) in FileFormatUtil.DetectFileFormatBug
EMAILNET-41772Aspose.Email recognized some regular attachments as linked resources.Bug
EMAILNET-41769iCalendar read errorBug
EMAILNET-41764VCardPhotoType.PNG does not existBug
EMAILNET-41754Error moving emails between folders using Microsoft GraphBug

New Features

Added ProductIdentifier Support for Contacts and Appointments

You can now read and write the product identifier that created a contact or appointment, making it easier to trace the source of VCard and calendar items. This enhancement adds a ProductId property across the relevant API classes and save options objects.

Public API Changes:

  • Calendar.Appointment.ProductId – Gets or sets the id of the product that created this appointment.
  • Mapi.MapiCalendar.ProductId – Gets or sets the id of the product that created this calendar.
  • Mapi.MapiContact.ProductId – Gets or sets the id of the product that created this contact.
  • Mapi.ContactSaveOptions.ProductId – Gets or sets the id of the product that created this VCard object.

Code Example:

//contact
var contact = VCardContact.Load(fileName);
string prodId = contact.ExplanatoryInfo.ProdId;
var ms = new MemoryStream ();
contact.Save(ms, ContactSaveFormat.Msg);
ms.Position = 0;
var msg = MapiMessage.Load(ms);
var mcontact = (MapiContact)msg.ToMapiMessageItem();
Assert.IsTrue(prodId == mcontact.ProductId);
ms = new MemoryStream();
var mopt = new MapiContactSaveOptions() { ProductId = "New ProductId" };
mcontact.Save(ms, mopt);

//calendar
var app = Appointment.Load(fileName);
prodId = app.ProductId;
ms = new MemoryStream();
app.Save(ms, new AppointmentMsgSaveOptions());
ms.Position = 0;
msg = MapiMessage.Load(ms);
var mcalendar = (MapiCalendar)msg.ToMapiMessageItem();
Assert.IsTrue(prodId == mcalendar.ProductId);
ms = new MemoryStream();
var calOpt = new MapiCalendarMsgSaveOptions() { ProductIdentifier = "New ProductId" };
mcalendar.Save(ms, calOpt);