Inline Attachments in EML File Are Not Showing

I am loading an eml in Aspose mail object.
The eml file has an inline attachment but when I load it shows LinkedResources count 0 and when I export it into pst the inline attachment gets skipped.
Here is the original eml and the code used to load eml file.

f_Objmailmessage = MailMessage.Load(f_tmpEmlPath, new EmlLoadOptions()); (88.2 KB)

Thank you for the issue description. Please check the problem using the latest version of Aspose.Email. If the issue persists, please share the following:

  • code example exporting the EML file to PST
  • screenshot showing how the message looks in PST using Outlook

Here the code I am using add the attachment.
Al other properties and other attachments are ok except inline.

if (f_att.Hidden)

                            for (int j = 0; j < p_Objmailmessage.LinkedResources.Count; j++)
                                LinkedResource LinkedAttachments = p_Objmailmessage.LinkedResources[j];
                                if (f_att.FileName.Equals(LinkedAttachments.ContentType.Name))
                                    // p_Objmailmessage.LinkedResources[j].ContentId = f_att.ContentID;
                                    p_Objmailmessage.LinkedResources[j].ContentId = LinkedAttachments.ContentId; ;

Attaching how it looks like in pst.

PST.png (111.0 KB)

Unfortunately, I cannot use your code snippet to investigate this case (it contains unknown variables). Please share a comprehensive code example for creating a mail message with an attachment.


You don’t need the code snippet as I am just loading the eml in Aspose.Email mail object and then assigning properties to MailMappi object .

Could you please clarify, how the attached EML file was created?

I am saving the Mime content from Chilkat.
If you could load the eml file in aspose.Email object you will see linked resources are in
p_Objmailmessage.AlternateViews[0].LinkedResources[0] ;

But not in the direct Linked resources(p_Objmailmessage.LinkedResources[0];

I logged the issue with ID EMAILNET-40411 in our tracking system. Our development team will investigate this case. We will inform you of any progress.

Our development team investigated the issue. The problem is that the Content-Location header in the EML file contains “cid:” characters that should not be. Starting version 21.9, you will be able to add the EML file to a PST file correctly by using a MapiMessage object as shown below:

var message = MailMessage.Load(folderPath + "1edface3-e955-47f5-8d5e-44040ef6c362.eml");
using (var pst = PersonalStorage.Create(folderPath + "test.pst", FileFormatVersion.Unicode))
    var folderInfo = pst.RootFolder.AddSubFolder("TestFolder");

    var conversionOptions = new MapiConversionOptions(OutlookMessageFormat.Unicode);
    folderInfo.AddMessage(MapiMessage.FromMailMessage(message, conversionOptions));

Documents: Working with Messages in a PST File
API Reference: MailMessage Class, MapiMessage Class

Thank you for the update.
Is 21.9 version released?
I can see only 21.8.1 version.

Aspose.Email 21.9 for .NET will be released towards the end of September.

Thank you for the update.

The issues you have found earlier (filed as EMAILNET-40411) have been fixed in this update.