使用 EWS 访问通用流程收件箱

Accessing a generic process inbox using EWS

我正在尝试使用 EWS 访问进程邮箱。对于一些自动查询,我们创建了一个通用流程邮箱。我想通过查看 Process 收件箱来解析电子邮件。

我的代码之前使用的是旧的交换服务器。但是迁移到office 365后就失败了

我可以使用我的凭据访问我的邮箱并在 office 365 上进行解析。

如何访问此进程邮箱?早些时候,我创建了一个 ExchangeService 并使用 UseDefaultCredentials = true 连接到进程电子邮件地址。

我设置了 AutoDiscoverURl 并使用了 DefaultCredentials。但是当我尝试阅读电子邮件时,我得到 "The SMTP address has no mailbox associated with it."

编辑: 我尝试使用自己的凭据而不是默认凭据。

string smtpaddress = "somesharedsmtp@domain.com";
es.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");
es.Credentials = new WebCredentials("myemail", "mypassword");
es.AutodiscoverUrl(smtpaddress, RedirectionCallback);
FolderId SharedMailbox = new FolderId(WellKnownFolderName.Inbox, "somesharedsmtp@domain.com");
Folder sharedInbox = Folder.Bind(es, SharedMailbox);

此时我可以检查包含收件箱详细信息的 sharedInbox。我可以看到未读邮件数和其他。

但是当我访问

ItemView itemView = new ItemView(100);
FindItemsResults<Item> findResults1 = es.FindItems(pqInbox.Id, itemView);

我遇到异常 "SMTP address has no mailbox associated with it"

免责声明:我有一段时间没有使用 EWS。

您不能使用 Office 365 的默认凭据。您需要提供基本凭据或使用 OAuth 令牌。

您应该确认该帐户已迁移到 Office 365。登录到 OWA 并查看 URL 以确保您使用的是 Office 365 而不是内部部署服务器。

Exchange Web Services: UseDefaultCredentials property

已经回答了这个问题