您好我想从位于磁盘上的现有版本创建一个Outlook.MailItem(我相信)。我将路径存储在一个字符串中,并希望从中保存正文和附件。
我似乎无法弄清楚如何在c#中打开它并访问它。
目前我有类似的内容
其中fl评估为“C:\ users \ msgs \ email.msg”
感谢您的时间
Outlook.Application app = new Outlook.Application();
try
{
foreach (String fl in Directory.GetFiles(docInfo.LocalPath + _preprocessorDirectory))
{
if (Regex.IsMatch(fl.Trim(), _regex, RegexOptions.IgnoreCase))
{
Outlook.MailItem email = new Outlook.MailItem(fl);
SaveAttachments(email);
SaveBody(email);
}
}
}
catch (Exception ex)
{
logger.Error("Error in Process for document " + docInfo.OriginalPath, ex);
callback.Invoke(docInfo, false);
}
return false;
答案 0 :(得分:7)
要在outlook中打开一个项目,请尝试:
var email = (Outlook.MailItem)app.Session.OpenSharedItem(fl)
从那里,您也可以访问Attachments
属性和Body
属性。
此外,正如我在评论中提到的,如果Regex.IsMatch
是确定文件扩展名,请改用Path.GetExtension()
答案 1 :(得分:0)
我使用了这个NuGet包:https://www.nuget.org/packages/MSGReader/
似乎工作正常。我更喜欢它到MS OutlookApi库,因为它不需要安装Outlook。
我感谢它不会像你在你的问题中所要求的那样创建MailItem的实例 - 但是它将使你能够提取保存单个附件和正文......