private static void Testing_Extracting_Email_Body_From_An_Email_File()
{
CDO.IMessage msg = GetCdoEmail(@"C:\BizTalk_Dropzone\MW\OSM.CrewMail\Process\00 - Emails from somebody (No MIME)\New folder\{2413639D-9F69-4E7F-ADE3-A0835E8821EB}.eml");
Console.WriteLine(msg.TextBody);
msg = null;
}
// Microsoft CDO for Windows 2000 Library
// Microsoft ActiveX Data Objects 6.0 Library
private static CDO.IMessage GetCdoEmail(string sAnEmailFile)
{
CDO.Message msg = new CDO.Message();
// load MIME into CDO
using (FileStream stream = new FileStream(sAnEmailFile, FileMode.Open))
{
// read file into a byte stream
byte[] emailData = new byte[stream.Length];
stream.Read(emailData, 0, (int)stream.Length);
// load byte stream data into an ADODB stream for CDO
ADODB.Stream stm = new ADODB.Stream();
stm.Open(
System.Reflection.Missing.Value,
ADODB.ConnectModeEnum.adModeUnknown,
ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified,
null, null);
stm.Type = ADODB.StreamTypeEnum.adTypeBinary;
stm.Write(emailData);
stm.Flush();
stm.SetEOS();
// attach data source to the CDO object
msg.DataSource.OpenObject(stm, "_Stream");
stm.Close();
}
return msg;
}
Though it was working most of the time say 99%, I discovered an issue just yesterday, that this function could not extract the body of an email created by a Biztalk. I'll post soon a solution, the one I am think out is using a Chilkat since we do have a license for it and we used it way back then.
ReplyDelete\m/