【问题标题】:Outlook Security, interop NET reference?Outlook 安全,互操作 NET 参考?
【发布时间】:2013-10-16 19:51:26
【问题描述】:

我正在尝试创建一个访问 Outlook 电子邮件详细信息的独立应用程序。特别是 MailItem 的主题、发件人和正文。

我一生都无法弄清楚为什么有时 Outlook 会提示用户允许访问(例如,获取“程序正在尝试访问电子邮件地址信息....允许访问 x 分钟消息框)有时不是。这种不规则性是在数周内提出申请的不同尝试中造成的,所以我想我添加的引用或对象使用可能有什么不同?

我已经安装了 Microsoft Office 2010 互操作程序集并添加了 Microsoft.Office.Interop.Outlook 版本 14.0.0.0 的 .NET 引用

这是一个非常基本的 sn-p 代码,它确实会导致诊断日志:

using System; <br/>
using System.Collections.Generic; <br/>
using System.Linq; <br/>
using System.Text; <br/>
using Microsoft.Office.Interop.Outlook; <br/>

namespace OutlookTest
{
    class Program
   {
        static void Main(string[] args)
        {
            Microsoft.Office.Interop.Outlook.Application olApp = new Microsoft.Office.Interop.Outlook.Application();
            Microsoft.Office.Interop.Outlook.NameSpace olNS = olApp.GetNamespace("MAPI");
            MAPIFolder oFolder = olNS.GetDefaultFolder(OlDefaultFolders.olFolderInbox);

            foreach (object item in oFolder.Items)
            {
                if (item is MailItem)
                {
                    MailItem i = (MailItem)item;

                    Console.WriteLine("{0}", i.Body); 
                }
            }

            Console.ReadLine();
        }
    }
}

我在这里做错了什么?

【问题讨论】:

标签: interop outlook


【解决方案1】:

您没有做错任何事,这是对用户/公司有益的 Outlook 安全警报。去年我也有类似的问题。到目前为止我记得的选项: 您可以像 Remou 提到的那样创建trusted microsoft addin,或者您可以将自己添加为trusted publisher,或者您可以将Visual Basic 脚本添加到Outlook,您可以call from your application

【讨论】:

  • 我不明白Office“看到”的是什么来确定应用程序是否受信任。就像我提到的,在开发过程中,我创建了一些实例,在这些实例中我可以访问 MailItem.Body 而不会抛出安全弹出窗口。
  • 我相信这些实例在您在(假设)10 分钟内确认安全弹出窗口后是有效的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
  • 2013-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多