[英]How to retrieve emails directly from Outlook 2010 inbox for multiple users, for a VSTO Outlook add-in
當前在VSTO(VS 2017)中使用C#創建Outlook 2010加載項,想知道如何直接從收件箱中檢索電子郵件以自動掃描傳入郵件的仿冒URL。 將為多個用戶帳戶和PC安裝此加載項。 我可以使用服務器憑據和EWS直接連接到交換服務器,但是由於它是針對多個低特權用戶的,因此有一種方法可以確保他們的用戶帳戶信息是唯一需要的憑據,而不必連接到交換服務器?
這是我發現的直接連接到交換服務器的示例代碼:
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
打開其他用戶的文件夾(假定您擁有其他用戶的文件夾的權限)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.