VintaSoft Imaging .NET SDK 15.2: Documentation for .NET developer
Vintasoft.Imaging.Metadata Namespace / EmailDocumentMetadata Class
Members Object Syntax Example Hierarchy Requirements SeeAlso
In This Topic
EmailDocumentMetadata Class
In This Topic
Stores the Email document metadata.
Object Model
EmailHeaderInfo MetadataNode MetadataNodeList EmailDocumentMetadata
Syntax
'Declaration

Public Class EmailDocumentMetadata
   Inherits DocumentMetadata

public class EmailDocumentMetadata : DocumentMetadata

Example

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();
    }
}

Inheritance Hierarchy

System.Object
   Vintasoft.Imaging.Metadata.MetadataNode
      Vintasoft.Imaging.Metadata.DocumentMetadata
         Vintasoft.Imaging.Metadata.EmailDocumentMetadata

Requirements

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

See Also