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

时间:2016-04-26 09:03:50

标签: c# exchange-server exchangewebservices

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

我的代码早先使用旧的Exchange服务器。但在迁移到Office 365后,它失败了。

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

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

我设置了AutoDiscoverURl并使用了DefaultCredentials。但当我尝试阅读电子邮件时,我得到了#34; SMTP地址没有与之关联的邮箱。"

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

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);

我得到异常&#34; SMTP地址没有与之关联的邮箱&#34;

1 个答案:

答案 0 :(得分:0)

免责声明:我暂时没有与EWS合作过。

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

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

这已由Exchange Web Services: UseDefaultCredentials property

回答