我正在尝试创建一个访问Outlook电子邮件详细信息的独立应用程序。特别是MailItem的主题,发件人和正文。
我不能为我的生活弄清楚为什么有时候Outlook会提示用户允许访问(例如,获取“A程序正在尝试访问电子邮件地址信息....允许访问x分钟消息框”)有时甚至不是。这种不规则性是在几周内完成申请的不同尝试,所以我想也许我正在添加或使用对象的引用有所不同?
我已安装Microsoft Office 2010互操作程序集并添加了Microsoft.Office.Interop.Outlook版本14.0.0.0的.NET参考
这是一个非常基本的代码片段,它会导致diaglog:
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();
}
}
}
我在这里做错了什么?
答案 0 :(得分:0)
你没有做错任何事,这是Outlook安全警报,这对用户/公司有利。我去年有类似的问题。到目前为止我记得的选项: 您可以像Remou提到的那样创建trusted microsoft addin,也可以将自己添加为trusted publisher,或者可以在Outlook中添加可视基本脚本call from your application。