如何在一次更新中将通过 EWS 获取的所有电子邮件标记为已读?

2024-01-22

我按照 MSDN 上的 EWS 托管 API 示例进行操作查找我的 Exchange 邮箱帐户中所有未读的电子邮件 https://msdn.microsoft.com/en-us/library/office/dn535506%28v=exchg.150%29.aspx#bk_getewsma.

后来我检查了每个找到的项目,以便将它们放入我需要返回的列表中,同时获取每条消息的正文并将每条消息更新为IsRead=true如下:

Folder.Bind(Service, WellKnownFolderName.Inbox);

SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And,
    new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));
//ItemView limits the results to numOfMails2Fetch items
FindItemsResults<Item> foundItems = Service.FindItems(WellKnownFolderName.Inbox, sf,
    new ItemView(numOfMails2Fetch));

if (foundItems.TotalCount > 0)
{
    List<EmailMessage> emailsList = new List<EmailMessage>(foundItems.TotalCount);
    foundItems.Items.ToList().ForEach(item =>
    {
        var iEM = item as EmailMessage;
        emailsList.Add(iEM);
        // update properties
        iEM.IsRead = true;
        iEM.Update(ConflictResolutionMode.AutoResolve);
    });
    // fetches and assign the bodies of each email
    Service.LoadPropertiesForItems(emailsList,PropertySet.FirstClassProperties);
    return emailsList;
} else return null;

是否可以将所有找到的项目更新为IsRead=true而是在单个请求中? IE。无需一一更新=更好的性能和连贯的逻辑。


是的你可以。ExchangeService.UpdateItems是您要在此处使用的方法。看如何:使用 Exchange 中的 EWS 批量处理电子邮件 https://msdn.microsoft.com/EN-US/library/office/dn595098(v=exchg.150).aspx了解详情。

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

如何在一次更新中将通过 EWS 获取的所有电子邮件标记为已读? 的相关文章

  • 将 Stream 反序列化为 List 或任何其他类型

    尝试将流反序列化为List
  • SharpZipLib - 将文件夹/目录添加到 zip 存档

    通过示例 我很好地掌握了如何提取 zip 文件 几乎在每个示例中 识别 ZipEntry 是否为目录的方法如下 string directoryName Path GetDirectoryName theEntry Name string
  • 如何将十六进制字符串转换为十六进制数字[重复]

    这个问题在这里已经有答案了 可能的重复 如何将十六进制字符串转换为有符号整数 https stackoverflow com questions 3705429 how do i convert hex string into signed
  • 将图像文件从网址复制到本地文件夹?

    我有该图像的网址 例如 http testsite com web abc jpg http testsite com web abc jpg 我想将该 URL 复制到 c images 中的本地文件夹中 而且当我将该文件复制到文件夹中时
  • 获取 std::variant 当前持有的 typeid(如 boost::variant type())

    我已经从 boost variant 迁移到 std variant 但遇到了障碍 我在 boost type 中使用了一个很好的函数 它可以让你获取当前持有的 typeid 看https www boost org doc libs 1
  • 如何使用 MVVM 更新 WPF 中编辑的数据? [复制]

    这个问题在这里已经有答案了 我正在为聊天应用程序构建 UI 设计 在尝试更新所选联系人的消息时遇到问题 选择现有联系人 选择编辑选项 然后编辑其属性 例如用户名和图像 后 唯一进行的更改是联系人的用户名和图像 我仍然想更改 MessageM
  • 在Application_AquireRequestState事件中用POST数据重写Url

    我有一个在其中注册路线的代码Application AcquireRequestState应用程序的事件 注册路由后 我会在 Http 运行时缓存中设置一个标志 这样我就不会再次执行路由注册代码 在此事件中注册路线有特定原因Applicat
  • 导出类时编译器错误

    我正在使用 Visual Studio 2013 但遇到了一个奇怪的问题 当我导出一个类时 它会抛出 尝试引用已删除的函数 错误 但是 当该类未导出时 它的行为会正确 让我举个例子 class Foo note the export cla
  • Paradox 表 - Oledb 异常:外部表不是预期的格式

    我正在使用 Oledb 从 Paradox 表中读取一些数据 我遇到的问题是 当我将代码复制到控制台应用程序时 代码可以工作 但在 WinForms 中却不行 两者都以 x86 进行调试 我实际上只是复制代码 在 WinForms 应用程序
  • 单线程公寓问题

    从我的主窗体中 我调用以下命令来打开一个新窗体 MyForm sth new MyForm sth show 一切都很好 但是这个表单有一个组合框 当我将其 AutoCompleteMode 切换为建议和追加时 我在显示表单时遇到了这个异常
  • 手动将 ClientBase 集合类型从 Array[] 更改为 List<>

    我将自己的 WCF 代理与 Client Base 一起使用 我想做一些类似于 svc util 中的 ct 属性的操作 并告诉代理返回 List 集合类型 我不能使用 List 因为实体由 nhibernate 管理 所以我必须使用 IL
  • 在简单注入器中注册具有多个构造函数和字符串依赖项的类型

    我正在尝试弄清楚如何使用 Simple Injector 我在项目中使用了它 注册简单服务及其组件没有任何问题 但是 当组件具有两个以上实现接口的构造函数时 我想使用依赖注入器 public DAL IDAL private Logger
  • 如何用 C 语言练习 Unix 编程?

    经过五年的专业 Java 以及较小程度上的 Python 编程并慢慢感觉到我的计算机科学教育逐渐消失 我决定要拓宽我的视野 对世界的一般用处 并做一些 对我来说 感觉更重要的事情就像我真的对机器有影响一样 我选择学习 C 和 Unix 编程
  • 使用(linq to sql)更新错误

    我有两个表 通过外键 CarrierID 绑定 Carrier CarrierID CarrierName CarrierID 1 CarrierName DHL CarrierID 2 CarrierName Fedex Vendor V
  • 如何将对象转换为传递给函数的类型?

    这不会编译 但我想做的只是将对象转换为传递给函数的 t public void My Func Object input Type t t object ab TypeDescriptor GetConverter t ConvertFro
  • 在 C++ 和 Windows 中使用 XmlRpc

    我需要在 Windows 平台上使用 C 中的 XmlRpc 尽管我的朋友向我保证 XmlRpc 是一种 广泛可用的标准技术 但可用的库并不多 事实上 我只找到一个库可以在 Windows 上执行此操作 另外一个库声称 您必须做很多工作才能
  • Hudson 和电子邮件通知

    我可以覆盖每个作业的 Hudson 设置 系统管理员电子邮件地址 吗 阅读了一些源代码http sorcerer jenkins ci org http sorcerer jenkins ci org and hudson tasks Ma
  • 如何设置 CMake 与 clang 交叉编译 Windows 上的 ARM 嵌入式系统?

    我正在尝试生成 Ninja makefile 以使用 Clang 为 ARM Cortex A5 CPU 交叉编译 C 项目 我为 CMake 创建了一个工具链文件 但似乎存在错误或缺少一些我无法找到的东西 当使用下面的工具链文件调用 CM
  • g++ C++0x 枚举类编译器警告

    我一直在将可怕的 C 类型安全伪枚举重构为新的 C 0x 类型安全枚举 因为它们是way更具可读性 不管怎样 我在导出的类中使用它们 所以我明确地将它们标记为导出 enum class attribute visibility defaul
  • FindAsync 很慢,但是延迟加载很快

    在我的代码中 我曾经使用加载相关实体await FindAsync 希望我能更好地遵守 C 异步指南 var activeTemplate await exec DbContext FormTemplates FindAsync exec

随机推荐

  • Azure Blob 和队列线程安全

    我需要一些帮助来理解 azure CloudBlobClient CloudQueueClient 和 CloudBlob 类中的线程安全性 我正在开发一个辅助角色 其中包括多个独立的作业处理器 其中每个作业处理器从特定队列读取数据并写入
  • 如何向 Visual Studio 2010 添加 PHP 支持?

    我不喜欢分割我的开发环境 但我为同时使用 NET 系统和基于 Apache 的系统的客户构建项目 这意味着我被迫将时间分配在 Visual Studio for the NET 和 Dreamweaver 或其他 IDE 之间进行基于 PH
  • 从私有 Git 存储库推送/拉取的 Bash 脚本?

    我正在尝试找到一种方法 可以编写一个 bash 脚本 该脚本将在每天午夜自动从我们的私人 Github 存储库中提取并更新我们的开发站点 我们的仓库出于明显的原因是私有的 我发现的任何接近的东西总是要求输入密码 我们的服务器有自己的 Git
  • 在组件中加载 Google Maps JS API [Angular]

    如何加载外部js文件 来自 Angular 组件中的 url 具体来说 我正在尝试加载google maps api到我的角度项目 目前 我正在我的index html像这样 注意 我知道angular maps 那不是一个选择 您可以随时
  • 避免内存泄漏

    C 中如何使用重载运算符来防止内存泄漏 任何完整的例子 Regards PKV 如果您想避免内存泄漏 请不要使用delete 这可能看起来很矛盾 但事实是手动内存管理很容易出错 最好使用自动 或库 技术 在 C 中 对于您创建的每个对象 都
  • Haskell - 在“where”内定义带有守卫的函数

    我刚刚开始自学 Haskell 这段代码应该进行质因数分解 divides Integer gt Integer gt Bool divides small big big mod small 0 lowestDivisor Integer
  • Git 未推送所有文件和文件夹

    我正在尝试将整个目录推送到我的存储库中 每次我尝试这样做时 它只是推送自述文件 没有其他任何内容 正如您在第二张照片中看到的 那里只有 README 第三张图片是我的主目录的样子 第一张图是添加和推送的整个过程 向您展示我已经完成了必要的步
  • 如何在Java中使用AES加密数据

    我希望在java中使用AES cbc 加密一段数据 我想使用我自己的IV 我将其保存在字节数组中 并将我自己的密钥保存在字节数组中 我该怎么做呢 我正在搜索它以查找有关此主题的教程 This http www javamex com tut
  • SyntaxError:以 '\x82' 开头的非 UTF-8 代码 [重复]

    这个问题在这里已经有答案了 在处理 Python 字节 时 我在 Eclipse 中收到此错误 它说错误显示在两行中 source C My Documents C Code and zip command zip qr 0 1 forma
  • 我可以使用 HtmlAgilityPack 在某个标签上拆分 HTML 文档吗?

    例如 我有一堆 tr 我想收集的标签 我需要将每个标签拆分为单独的元素 以便于我更轻松地进行解析 这可能吗 标记的示例 tr class first in year td class year 2011 td td class img a
  • 更新时:自动更新日期/时间字段

    SQL Server 的更新字段上是否有相当于 MySQL 的功能 具有 DEFAULT CURRENT TIMESTAMP 和更新 CURRENT TIMESTAMP 子句 该列具有当前 其默认值的时间戳 以及 会自动更新 我正在寻找的是
  • 如何在android中以编程方式更改编辑文本的位置?

    我正在使用RelativeLayout 以编程方式创建多个彼此相邻的编辑文本 每个编辑文本的默认宽度是wrap content 但是当编辑文本到达屏幕边缘时 它会在视觉上改变其大小 那么当发生这种情况时我怎样才能让它移动到下一行呢 priv
  • R无法识别格式中的日期

    folk R 无法识别下一个日期类型 Jun 3 1986 我多次尝试将该列转换为因子或字符 stackoverflow 中的下一个示例不起作用并返回 NA sdate2 日期 我使用了小写字母 b 但它也不起作用 我的版本不太好用 as
  • mysql 选择每个月的记录数

    我需要在 mysql 中创建一个查询 该查询将返回 12 行 每个月一行 用于选择月份名称以及给定月份的记录数 我有两个表 months tbl 和 events tbl events tbl 中的每条记录都有一个 datetime 列和一
  • C#:异步NamedPipeServerStream管道正在关闭异常

    我之前关于同一主题的问题 C 异步NamedPipeServerStream理解 https stackoverflow com questions 11435262 c asynchronous namedpipeserverstream
  • 在 AddOpenIdConnect 中获取 ServiceProvider,无需 BuildServiceProvider()

    有没有好的方法获得ServiceProvider in the AddOpenIdConnect or稍后配置 ClientSecret 我们已经完全设置了 DI 容器 例如在Configure IApplicationBuilder ap
  • postgresql datababse 错误:服务器是否在本地运行并接受 Unix 域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?

    当我运行rake db migrate或运行rails s命令 我得到同样的错误 Error could not connect to server No such file or directory Is the server runni
  • 如何在 R 数据帧中将 UTC 时间戳转换为多个本地时区?

    我有一个数据框 df 它有 2 列 utc 时间戳和时区 我想创建一个显示本地时间基准本地时区的列 我尝试了下面给出的一些方法 This is my dataframe df lt data frame utc time stamp c 2
  • 如何通过 git-svn 使用嵌套分支

    我们的 svn 服务器有一个名为 Dev 的主干和位于其中的分支 Branches Release 1 0 2 0 2 3 4 我用类似的东西克隆了它git svn clone T Dev b Branches 当我跑步时git branc
  • 如何在一次更新中将通过 EWS 获取的所有电子邮件标记为已读?

    我按照 MSDN 上的 EWS 托管 API 示例进行操作查找我的 Exchange 邮箱帐户中所有未读的电子邮件 https msdn microsoft com en us library office dn535506 28v exc