VintaSoft Imaging .NET SDK 15.2: Documentation for .NET developer
In This Topic
Codecs: How to get information about Email file?
In This Topic
Here is C#/VB.NET code that shows how to get information about Email file:
/// <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();
    }
}
''' <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