如何直接从 Outlook 2010 收件箱中为多个用户检索 VSTO Outlook 加载项的电子邮件



目前正在VSTO(VS 2017(中使用C#创建Outlook 2010加载项,想知道如何直接从收件箱中检索电子邮件,以自动扫描传入邮件的网络钓鱼URL。将为多个用户帐户和电脑安装此外接程序。我将能够使用服务器凭据和 EWS 直接连接到 Exchange 服务器,但由于它适用于多个低特权用户,有没有办法确保他们的用户帐户信息是唯一所需的凭据而无需连接到 Exchange 服务器?

以下是我找到的直接连接到交换服务器的示例代码:

using Microsoft.Exchange.WebServices.Data;
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
service.Credentials = new WebCredentials("USERNAME", "PASSWORD", "DOMAIN");
service.Url = new Uri("EXCHANGE_WEBSERVICE_URL");
Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox);
if (inbox.UnreadCount > 0)
{
ItemView view = new ItemView(inbox.UnreadCount);
view.PropertySet = PropertySet.IdOnly;
FindItemsResults<Item> results = service.FindItems(inbox.Id, view);
foreach (Item item in results.Items)
{
EmailMessage email = EmailMessage.Bind(service, new ItemId(item.Id.UniqueId.ToString()));
//PROCESS EMAIL MESSAGE 
email.IsRead = true;
email.Update(ConflictResolutionMode.AlwaysOverwrite);
}
}

示例代码的创建者致谢

绝对没有理由在 COM 插件中使用 EWS。首先,您需要提示用户输入并存储凭据。其次,OOM 允许通过调用Namespace.GetSharedFolder打开其他用户的文件夹(假设您具有其他用户文件夹的权限(。

最新更新