我正在尝试连接到outlook在线和下载一些电子邮件与预定义的条件。
在浏览器中,当我转到https://outlook.office.com/mail/并使用特定的电子邮件和密码登录时,我可以看到所有邮件。
我有C#控制台应用程序,应该连接,搜索和电子邮件操作。
public void EmailReceiver()
{
try
{
ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
exchangeService.Credentials = new NetworkCredential("username", "pass");
exchangeService.Url = new Uri("https://outlook.office.com/mail/");
var inbox = Folder.Bind(exchangeService, WellKnownFolderName.Inbox);
var sf1 = new SearchFilter.ContainsSubstring(EmailMessageSchema.From, "searchMail");
SearchFilter.SearchFilterCollection searchFilterCollection = new SearchFilter.SearchFilterCollection(LogicalOperator.Or);
searchFilterCollection.Add(sf1);
var view = new ItemView(1000);
var findResults = service.FindItems(WellKnownFolderName.Inbox, searchFilterCollection, view);
return;
//foreach (Item item in findResults)
//{
// GetAttachmentsFromEmail(item.Id);
//}
}
catch (Exception ex)
{
throw;
}
}
但无法连接到outlook
有什么建议吗?
1条答案
按热度按时间pgx2nnw81#
Office 365不再允许基本身份验证,你需要切换到OAuth2。你仍然可以允许基本身份验证,但必须在Exchange管理控制台中为租户显式执行此操作。但即使在这种情况下,你也需要使用
WebCredentials
类,而不是NetworkCredential
。如果是OAuth,则需要OAuthCredentials
类。您可能还希望将
TraceEnabled
属性设置为true并提供类(将其分配给TraceListener
属性)以记录所有EWS调用。