如何使用C#使用Microsoft.Office.Interop.Outlook库读取.eml文件



我正在使用此代码读取C#中的.msg文件

Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
var item = app.Session.OpenSharedItem("MSG_FILE_PATH") as Microsoft.Office.Interop.Outlook.MailItem;
string body = item.HTMLBody;

如何使用同一个库来读取.eml文件?

根据我的测试,Outlook功能"OpenSharedItem"仅用于打开iCalendar约会(.ics(文件、vCard(.vcf(文件和Outlook邮件(.msg(文件。对于eml文件,我认为您可以参考以下代码:

protected CDO.Message ReadMessage(String emlFileName)
{
CDO.Message 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();
return msg;
}

更多信息:从.EML文件检索电子邮件信息

谢谢,

Simon

最新更新