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