MSG extract attachments
Extracts and saves all attachments from the specified .msg message.
Usage
===================================================================== ExtractAttachments.exe ===================================================================== Extracts all attachments from a .msg e-mail message. Supported e-mail formats: .msg (Microsoft Outlook). The program is a sample for Rebex MSG for .NET component. For more info, see https://www.rebex.net/msg/ Syntax is: MsgExtractAttachments.exe <mailfile.msg>
More info
The sample demonstrates:
- Loading MsgMessage from a local file.
 - Iterating through attachment collection.
 - Saving attachments to a local file.
 
The following code snippet is the core of this sample.
C#
// Load mail message from disk
var mail = new MsgMessage();
mail.Load(args[0]);
Console.WriteLine(
    "Message contains {0} attachments.",
    mail.Attachments.Count
);
// If message has no attachments, just exit
if (mail.Attachments.Count == 0)
    return;
foreach (MsgAttachment attachment in mail.Attachments)
{
    // Print attachment's file name and Content-Type
    Console.WriteLine(
        "Saving '{0}' ({1}).",
        attachment.FileName,
        attachment.Properties.GetValue(tag: MsgPropertyTag.AttachMimeTag,
                                       defaultValue: MediaTypeNames.Application.Octet)
    );
    // Save the attachment to file
    attachment.Save(attachment.FileName);
}
VB.NET
' Load mail message from disk
Dim mail As New MsgMessage
mail.Load(args(0))
Console.WriteLine(
    "Message contains {0} attachments.",
    mail.Attachments.Count
)
' If message has no attachments, just exit
If mail.Attachments.Count = 0 Then Return
For Each attachment As MsgAttachment In mail.Attachments
    ' Print attachment's file name and Content-Type
    Console.WriteLine(
        "Saving '{0}' ({1}).",
        attachment.FileName,
        attachment.Properties.GetValue(tag:=MsgPropertyTag.AttachMimeTag,
                                       defaultValue:=MediaTypeNames.Application.Octet)
    )
    ' Save the attachment to file
    attachment.Save(attachment.FileName)
Next attachment