FindItems() 和 BindToItems() 为 EmailMessage.Sender.Address 提供不一致的结果

2024-01-11

经过大量调试后,我将复杂的托管 EWS 问题细化为以下两个简单的测试用例。第一个有效,第二个失败:

var view = new ItemView(100) { PropertySet = new PropertySet { EmailMessageSchema.Id } };
var findResults = ews.FindItems(WellKnownFolderName.Inbox, view)
var bindResults = ews.BindToItems(findResults.Select(r => r.Id), new PropertySet { EmailMessageSchema.Sender });

// Sanity check
Assert.AreEqual(1, bindResults.Count());

// The results I care about
Assert.AreEqual("David Seiler", bindResults[0].Sender.Name);
Assert.AreEqual("[email protected] /cdn-cgi/l/email-protection", bindResults[0].Sender.Address);

人们可能会尝试剪掉BindToItems()调用并使用FindItems()直接地:

var view = new ItemView(100) { PropertySet = new PropertySet { EmailMessageSchema.Sender } };
var findResults = ews.FindItems(WellKnownFolderName.Inbox, view)

// This part still works fine
Assert.AreEqual(1, findResults.Count());

// So does this
Assert.AreEqual("David Seiler", findResults[0].Sender.Name);

// ...but this fails!  Sender.Address is null
Assert.AreEqual("[email protected] /cdn-cgi/l/email-protection", findResults[0].Sender.Address);

谁能告诉我哪里出了问题?从文档来看,这确实应该可行。并非所有属性都可以读取FindItems(),这是真的,但是当我尝试访问这些属性时通常会抛出异常,无论如何都有一个list http://msdn.microsoft.com/en-us/library/bb508824%28v=exchg.80%29.aspxMSDN 上的这些属性以及Sender不在上面。这是怎么回事?


其实我不知道为什么,但在第二个选项中,它只加载发件人的基本信息,例如姓名,而不是地址。

如果您想加载所有发件人属性但不想绑定完整消息,您可以在第一个断言之前添加以下行

service.LoadPropertiesForItems(findResults.Items, new PropertySet(EmailMessageSchema.Sender));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FindItems() 和 BindToItems() 为 EmailMessage.Sender.Address 提供不一致的结果 的相关文章

  • FindItems() 和 BindToItems() 为 EmailMessage.Sender.Address 提供不一致的结果

    经过大量调试后 我将复杂的托管 EWS 问题细化为以下两个简单的测试用例 第一个有效 第二个失败 var view new ItemView 100 PropertySet new PropertySet EmailMessageSchem
  • Microsoft Exchange 不会将 PHPmailer 生成的电子邮件呈现为 HTML

    这个问题已经困扰我好几个星期了 我有一个脚本 可以在 PHPmailer 的帮助下将带有 xls 附件的 html 电子邮件发送给多个收件人 它已经运行良好一年多了 最近 来自同一家公司的两个使用 Microsoft Exchange 作为
  • PHP-EWS“Soap 客户端返回状态 404”

    所以 我正在使用php ews http jamesarmes com php ews库连接到我的 Microsoft Office 365 Exchange 电子邮件帐户以阅读电子邮件 我已成功连接到它 并设法检索我需要的电子邮件列表 现
  • Exchange Web 服务错误 - 远程服务器返回错误 405 方法不允许

    我正在尝试通过交换网络服务发送邮件 我查了一下msdn并找到了一些帮助 每次我尝试运行此代码时 我都会收到上述错误 我尝试几乎到处阅读 ExchangeService service new ExchangeService Exchange
  • JAVAMAIL:AUTH NTLM 失败

    我尝试使用微软交换服务器在本地网络中用java发送电子邮件 这是我的代码 import java io UnsupportedEncodingException import java util Properties import java
  • 通过客户端存根访问 WSDL 时出现 Java InaccessibleWSDLException

    我正在尝试为 Exchange Web 服务编写自定义 Java 客户端 我已经使用生成了客户端存根wsimport工具如所解释here http java dzone com articles jax ws hello world来自 E
  • EWS - 如何找到所有未完成的任务?

    我正在使用 Exchange Web 服务尝试获取所有未完成的 Outlook 任务的列表 我有一个 ExchangeService 实例 并尝试查找所有未完成的任务 如下所示 SearchFilter searchFilter new S
  • 如何使用 EWS Java API(Exchange Web 服务)设置联系人头衔?

    我想实现与这个问题完全相同的事情 但是在java中 如何使用 Exchange Web 服务托管 API 设置联系人头衔 https stackoverflow com questions 4863364 how to set the co
  • 如何使用 Postman 查询 Exchange EWS?

    使用Postman 如何查询本地 Exchange 2016 EWS 我有 EWS 的组织 URLhttps my organization net EWS Exchange asmx 我们使用的是 Exchange 2016 没有 Off
  • 通过 EWS 为用户提供时区和工作时间

    是否可以通过EWS获取用户的时区和工作时间 我能够提取当前用户的 TZ 和工作时间 初始化 ExchangeService 的帐户 UserConfiguration usrConfig UserConfiguration Bind ser
  • Interlocked.Exchange 可空小数

    我想交换两个可为空的十进制值 如下所示 o2 Interlocked Exchange ref o1 o2 类型 十进制 必须是引用类型才能将其用作泛型类型或方法 System Threading Interlocked Exchange
  • 使用回调令牌的 PHP EWS

    有没有人有幸使用 EWS 回调令牌而不是用户名 密码对来自 PHP 的 EWS SOAP 请求进行身份验证 我一直在看PHP EWS https github com jamesiarmes php ews当您在谷歌上搜索此项目时会出现该项
  • 电子预警系统。如何在没有初始同步的情况下获取最新的SyncState?

    假设我的文件夹中有 100 000 条消息 我希望能够与最新更改同步 但我不需要任何旧消息 请求初始同步 SyncFolderItems null syncState 会带回所有 100 000 条消息 我不需要 如何在不从服务器读取 10
  • CodeIgniter SMTP 电子邮件消息 - 用等号替换字符

    我正在使用 CodeIgniter 电子邮件库通过我们的 Exchange 服务器发送电子邮件 我遇到的问题是电子邮件的内容变得混乱 有一些单词被等号 替换 我尝试了 2 个不同的 Exchange 服务器 它们位于不同的位置并且没有任何关
  • 死信交换 RabbitMQ 丢弃消息

    我正在尝试在 RabbitMQ 中实现 dlx 队列 场景很简单 我有 2 个队列 1 活着 2 死亡 x dead letter exchange 立即 x message ttl 5000 以及 立即 交换 这必然是 1 活着 我尝试运
  • ActionMailer 和 Exchange

    我使用 Rails 应用程序和 Postfix 服务器成功通过 SMTP 发送邮件 现在我需要转移到启用了 POP3 和 SMTP 支持的 Exchange Microsoft ESMTP MAIL 服务 版本 6 0 3790 3959
  • Exchange Online - 无法更改正在进行的活动的结束时间

    假设如下 在 Office365 中 已使用默认值创建了房间资源 设置 已在该房间预订会议 会议开始了 当时的主办方改变结束时间会议的时间 延长会议或提前结束 房间自动回复Your meeting request was declined
  • 如何从我的 Gmail 帐户接收推送通知?

    我想编写一个监视邮箱 最好是 Gmail 邮箱 的应用程序 简而言之 我的问题是如何收听传入的电子邮件 我总是可以继续提取电子邮件 但我担心这不能很好地扩展 iOS 如何使用 Gmail 我认为他们正在使用 Exchange 协议 但我不确
  • EWS - 给予预约,获取预约的所有者副本

    在 EWS 中进行预约后 是否可以获得所有者的副本 例如 如果我登录为user1 我有user1创建的约会的副本user2 我有冒充权 我要编辑user2预约的副本 我怎样才能获得user2 s copy 您可以使用 PidLidClean
  • 获取会议组织者邮件地址 EWS API

    我想使用 EWS API 获取会议组织者的邮件地址 目前 我刚刚获得约会项目的一些属性 我听说你可以设置你想要获取哪些属性 我的代码看起来像这样 CalendarView cview new CalendarView start end c

随机推荐