繁体   English   中英

如何使用 C# 从 Outlook 保存附件?

[英]How do I save attachment from Outlook using C#?

C# 新手并尝试从 Python 转换。 我用 Python 编写了代码,它可以浏览我的电子邮件并保存某些邮件的附件。 现在尝试在 C# 中执行此操作,但遇到了一些问题。

我的第一个尝试是添加引用,然后勾选 MS Outlook 16.0 对象库,然后运行以下命令:

using System;
using Outlook = Microsoft.Office.Interop.Outlook;

namespace SaveEmail
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            try
            {
                Outlook.Application oApp = new Outlook.Application();              
            }
            catch (Exception e)
            {
                Console.WriteLine($"Exception : {e}");
            }
        }
    }
}

但即使是这个简单的 init 也会失败:

未处理的异常。 System.IO.FileNotFoundException: 无法加载文件或程序集 'office,版本 = 15.0.0.0,文化 = 中性,

我做了一些挖掘,似乎 Outlook 16.0 参考实际上指的是 OFFICE 2019。但在我们公司内部,我们运行的是 OFFICE 365。

鉴于我使用的是桌面版 Outlook (365),如何浏览我的邮箱并将附件保存在特定电子邮件中?

解决我的问题的两个步骤:

首先,我必须创建一个新的 .NET FRAMEWORK 项目(而不是 CORE)

其次,下面的代码用于让我继续:

        Outlook.Application outlookApp = null;
        // Check whether there is an Outlook process running.
        if (Process.GetProcessesByName("OUTLOOK").Count() > 0)
        {
            // If so, use the GetActiveObject method to obtain the process and cast it to an Application object.
            outlookApp = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
        }
        else
        {
            // If not, create a new instance of Outlook and sign in to the default profile.
            outlookApp = new Outlook.Application();
            Outlook.NameSpace nameSpace = outlookApp.GetNamespace("MAPI");
            nameSpace.Logon("", "", Missing.Value, Missing.Value);
            nameSpace = null;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM