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

本文关键字:Outlook MailItem 中的 路径 消息 创建 | 更新日期: 2023-09-27 18:03:49

你好,我想创建一个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;

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

在outlook中打开一个项目试试:

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

从那里,您可以访问Attachments属性和Body属性。

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

我使用了这个NuGet包:https://www.nuget.org/packages/MSGReader/

似乎工作良好。与MS OutlookApi库相比,我更喜欢它,因为它不需要安装Outlook。

我很感激它不会像您在问题中所要求的那样创建MailItem的实例,但它将使您能够提取保存单个附件和正文…