EmailDocumentMetadata Class
Stores the Email document metadata.
This C#/VB.NET code shows how to extract metadata from Email document.
''' <summary>
''' Extracts metadata from Email (.msg, .eml) document.
''' </summary>
''' <param name="emailFilePath">Path to a source Email file.</param>
Public Shared Sub ExtractMetadataFromEmail(emailFilePath As String)
' create image collection
Dim images As New Vintasoft.Imaging.ImageCollection()
Try
' open Email file
images.Add(emailFilePath)
' create metadata for Email document
Dim emailMetadata As Vintasoft.Imaging.Metadata.EmailDocumentMetadata = DirectCast(images(0).SourceInfo.Decoder.GetDocumentMetadata(), Vintasoft.Imaging.Metadata.EmailDocumentMetadata)
' names of attachments
If emailMetadata.AttachmentNames.Length > 0 Then
System.Console.WriteLine("Attachments:")
For Each attachmentName As System.Uri In emailMetadata.AttachmentNames
System.Console.Write(attachmentName)
Using attachmentStream As System.IO.Stream = emailMetadata.CreateAttachmentStream(attachmentName)
System.Console.Write(" (" & attachmentStream.Length & " bytes)")
End Using
System.Console.WriteLine()
Next
System.Console.WriteLine()
End If
' headers info (From, To, Subject...)
System.Console.WriteLine("Headers:")
For Each headerInfo As Vintasoft.Imaging.Codecs.Decoders.EmailHeaderInfo In emailMetadata.HeadersInfo
System.Console.WriteLine(headerInfo.Name & ": " & headerInfo.Value.ToString())
Next
Finally
images.ClearAndDisposeItems()
End Try
End Sub
/// <summary>
/// Extracts metadata from Email (.msg, .eml) document.
/// </summary>
/// <param name="emailFilePath">Path to a source Email file.</param>
public static void ExtractMetadataFromEmail(string emailFilePath)
{
// create image collection
Vintasoft.Imaging.ImageCollection images = new Vintasoft.Imaging.ImageCollection();
try
{
// open Email file
images.Add(emailFilePath);
// create metadata for Email document
Vintasoft.Imaging.Metadata.EmailDocumentMetadata emailMetadata =
(Vintasoft.Imaging.Metadata.EmailDocumentMetadata)images[0].SourceInfo.Decoder.GetDocumentMetadata();
// names of attachments
if (emailMetadata.AttachmentNames.Length > 0)
{
System.Console.WriteLine("Attachments:");
foreach (System.Uri attachmentName in emailMetadata.AttachmentNames)
{
System.Console.Write(attachmentName);
using (System.IO.Stream attachmentStream = emailMetadata.CreateAttachmentStream(attachmentName))
System.Console.Write(" (" + attachmentStream.Length + " bytes)");
System.Console.WriteLine();
}
System.Console.WriteLine();
}
// headers info (From, To, Subject...)
System.Console.WriteLine("Headers:");
foreach (Vintasoft.Imaging.Codecs.Decoders.EmailHeaderInfo headerInfo in emailMetadata.HeadersInfo)
{
System.Console.WriteLine(headerInfo.Name + ": " + headerInfo.Value.ToString());
}
}
finally
{
images.ClearAndDisposeItems();
}
}
Target Platforms: .NET 11; .NET 10; .NET 9; .NET 8; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5