代码之家  ›  专栏  ›  技术社区  ›  mattruma

如何将电子邮件从Outlook拖放到.NET应用程序中?

  •  7
  • mattruma  · 技术社区  · 14 年前

    我正试图找出如何将电子邮件从outlook 2010拖放到我的.net应用程序中。我看过很多文章,大多数都有非常复杂的解决方案。我的想法是不应该那么复杂…但我可能错了。

    任何帮助都将不胜感激!

    2 回复  |  直到 14 年前
        1
  •  5
  •   Community CDub    8 年前

    一个更简单的解决方案发布在这里: Get body from Outlook email [Drag’n’Drop]

    Outlook.Application outlook = new Outlook.Application();
    Outlook.Explorer oExplorer = outlook.ActiveExplorer();
    Outlook.Selection oSelection = oExplorer.Selection;
    
    foreach (object item in oSelection)
    {
        Outlook.MailItem mi = (Outlook.MailItem)item;
        Console.WriteLine(mi.Body.ToString());
    }
    

    它使用 Microsoft.Office.Interop.Outlook.dll 是的。(在Nuget上,同名)

        2
  •  0
  •   Donald    8 年前

    以上两个答案都是好的。不过,有几件事你需要知道。

    在第一个答案中,您可以下载示例程序并运行它,您会发现只要您在32位计算机上运行它,一切都很好,否则,您必须将程序从“anycpu”重新编译为“x86”。今天大部分时间我都在想为什么我拖放的.msg文件名的前两个字符丢失了。我一用“x86”重新编译它就开始工作了。

    在第二个答案中,您会发现是的,您可以使用这些代码,而且这要简单得多,但是,如果您需要您的应用程序在其他版本的outlook上运行(而不是您添加到引用中的版本),它可能无法工作。我曾经使用第二个答案中提到的相同类型的office对象,当有人想在不同版本的office上使用我的程序时(即,如果我使用office version 14,他们想在office 2007上使用它),我总是遇到问题。