gpt4 book ai didi

c# - 在 C# 中使用 Exchange Web 服务托管 API 检索错误的邮箱项目

转载 作者:可可西里 更新时间:2023-11-01 07:49:40 28 4
gpt4 key购买 nike

我正在尝试使用 Exchange Web 服务托管 API 从特定邮箱(我有权限)检索收件箱项目。我首先通过 AutodiscoverUrl 使用我自己的电子邮件地址测试了代码,它工作正常。但是,当我尝试使用其他电子邮件地址时,EWS 仍会检索我的自己的 收件箱项目。这是由于缓存还是其他原因?

我的代码如下:

    ExchangeService ex = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
ex.AutodiscoverUrl("someothermailbox@company.com");

FindItemsResults<Item> findResults = ex.FindItems(WellKnownFolderName.Inbox, new ItemView(10));

foreach (Item item in findResults.Items)
Console.WriteLine(item.Subject);

最佳答案

提供给 AutodiscoverUrl 的电子邮件地址与您绑定(bind)到的邮箱无关。

有(至少)两种方法可以从另一个用户邮箱获取收件箱项目:委托(delegate)访问和模拟。

如果您拥有对其他用户邮箱的委托(delegate)访问权限,则可以在调用 FindItems 时将邮箱指定为参数:

FindItemsResults<Item> findResults = ex.FindItems(
new FolderId(WellKnownFolderName.Inbox, new Mailbox("someothermailbox@company.com")),
new ItemView(10));

如果您有 permissions to impersonate其他用户,您可以在连接到 EWS 时模拟其他用户,并且以下对 FindItem 的调用将在模拟用户的收件箱中工作:

ExchangeService ex = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
ex.AutodiscoverUrl("someothermailbox@company.com");
ex.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "someothermailbox@company.com");
ItemsResults<Item> findResults = ex.FindItems(WellKnownFolderName.Inbox, new ItemView(10));

免责声明:我编写了上述代码,但并未在真实的 Exchange 服务器上进行实际测试。

关于c# - 在 C# 中使用 Exchange Web 服务托管 API 检索错误的邮箱项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9220900/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com