从路径创建/打开现有消息到c#中的新Outlook.MailItem

ext*_*din 2 c# outlook mailitem

您好我想从位于磁盘上的现有创建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;
Run Code Online (Sandbox Code Playgroud)

Chr*_*ens 7

要在outlook中打开一个项目,请尝试:

var email = (Outlook.MailItem)app.Session.OpenSharedItem(fl)

从那里,您也可以访问Attachments酒店和Body物业.

此外,正如我在我的评论中提到,如果Regex.IsMatch是determing文件扩展名,使用Path.GetExtension()代替