Я создаю «простой» VSTO (плагин Outlook) в WinForms с использованием VS19 для моей компании, который будет сканировать все папки на предмет номеров социального страхования и перечислять элемент электронной почты в listView, чтобы пользователь мог удалить почту.
Я использую клиент EWS Managed API: https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/get-started-with-ews-managed-api-client-applications?redirectedfrom=MSDN
Я реализовал вышеупомянутое в порядке, но проблема в том, что я не знаю, как правильно получить доступ к Exchange Server. В примерах, приведенных в ссылке, имя пользователя и пароль жестко закодированы, и, поскольку это приложение выпущено для нескольких разных пользователей, я хотел бы получить доступ к серверу обмена с помощью входа в систему Windows (это тот же логин в моей компании).
using Microsoft.Exchange.WebServices.Data;
// Setup how to download emails from the exchange server
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
service.Credentials = new WebCredentials("test.tester", "test123","domaintest");
service.AutodiscoverUrl("test.tester@test.com");
// Add all the mails from exchange server (inbox) to a list
bool more = true;
ItemView view = new ItemView(int.MaxValue, 0, OffsetBasePoint.Beginning);
view.PropertySet = PropertySet.IdOnly;
FindItemsResults<Item> findResults;
List<EmailMessage> emails = new List<EmailMessage>();
while (more)
{
findResults = service.FindItems(WellKnownFolderName.Inbox, view);
foreach (var item in findResults.Items)
{
emails.Add((EmailMessage)item);
}
more = findResults.MoreAvailable;
if (more)
{
view.Offset += 1000;
}
}
Когда я жестко кодирую свою информацию в вышеприведенном коде, все работает нормально, и я могу получить доступ к папке входящих сообщений и составить список с сообщениями электронной почты
После поиска в течение нескольких часов без результатов янадеюсь, ты сможешь мне помочь.