Read outlook eml file without outlook API
This post addresses how to extract From,To,Subject and message body content from *.eml file. Initialy i have tried my hand in using
Outlook API but results intermittent security exception while instatntiating the object. After much exploration in the web came to know about
the COM API called Collaborative Data Object model it can be located under Add Reference in VisualStudio under COM section namely
Microsoft CDO For Windows 2000 Library.
Below the code snippet where *.eml file name will be passed in turn returns object of type CDO.Message.
protected CDO.Message ReadMessage(String emlFileName)
{
CDO.Message msg = null;
try
{
msg = new CDO.MessageClass();
ADODB.Stream stream = new ADODB.StreamClass();
stream.Open(Type.Missing, ADODB.ConnectModeEnum.adModeUnknown, ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified, String.Empty, String.Empty);
stream.LoadFromFile(emlFileName);
stream.Flush();
msg.DataSource.OpenObject(stream, “_Stream”);
msg.DataSource.Save();
}
catch (Exception ex)
{ }
return msg;
}
Note: using Outlook Express you can save the message as *.eml file.
Categories: .Net
How to Read outlook eml file, Windows CDO Component
There are ways around it: use CoolUtils Mail viewer and export fields in fact files, which you can save as PDF, HTML, CSV, XLS and TXT files. This is a free program!
Thanks for your comment.But those are from third party party vendors.What i have suggested is Windows built-in component.