Exchange Web 服务获取消息消息 ID

2023-12-01

我正在使用Java EWS 库尝试从 Exchange 邮箱同步邮件。我可以获得自上次同步日期以来创建的所有新消息的列表,但是,我真的很想找出消息ID从交换加载消息之前的消息属性。

背景:我正在尝试将 EWS 同步集成到现有的邮件存储系统中。消息 ID 标识仅出于性能原因,因为我们的系统已经在 EWS 之外处理了数百万条消息。必须再次下载它们会导致重大的性能开销。

//Sample code to fetch the message from sync

ChangeCollection<ItemChange> icc = service.syncFolderItems( folder.getId()
                    , PropertySet.FirstClassProperties // propertySet
                    , null // ignoredItemIds
                    , 25 // maxChangesReturned
                    , SyncFolderItemsScope.NormalItems
                    , currSyncState );

for ( ItemChange ic : icc )
{
    if (ic.getChangeType() == ChangeType.Create)
    {
        Item item = ic.getItem();
        //how to get the Message-ID
    }

目前,我认为检索消息 ID 的最佳方法是调用ic.getItem().getInternetMessageHeaders()打电话后ic.load()。但这需要从交换中加载整个消息,我会避免这一步。

编辑:获取消息 ID 的另一种方法是

EmailMessage em = EmailMessage.bind( service, item.getId() );
em.getInternetMessageId()

但是,这仍然会加载整个消息。

另一种解决方案是开始通过 ItemId 关联消息,但即使这样也并不完美:http://daniellang.net/exchange-web-services-itemid-is-not-permanent/

有关消息 ID 的更多信息:http://en.wikipedia.org/wiki/Message-ID


我相信解决方案是这样的:

EmailMessage em = EmailMessage.bind( service, item.getId(),
                   new PropertySet( EmailMessageSchema.InternetMessageId) );

解释 :

我们必须将项目绑定到电子邮件消息,但我们不是获取所有信息,而是仅通过 PropertySet 参数询问 ID 和我们想要的任何其他属性。

受到这个答案的启发:https://stackoverflow.com/a/22482779/138228

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

Exchange Web 服务获取消息消息 ID 的相关文章

  • Java中有没有一种方法可以通过名称实例化一个类?

    我正在寻找问题 从字符串名称实例化一个类 https stackoverflow com questions 9854900 instantiate an class from its string name它描述了如何在有名称的情况下实例
  • 在 Java 中克隆对象 [3 个问题]

    这样做会调用Asub的clone方法吗 或者Asub深度克隆是否正确 如果没有的话 有没有办法通过这种方法对Asub进行深度克隆呢 abstract class Top extends TopMost protected Object cl
  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 将流转换为 IntStream

    我有一种感觉 我在这里错过了一些东西 我发现自己做了以下事情 private static int getHighestValue Map
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp

随机推荐

  • 从 jDateChooser 获取值并保存到 MS sql DB

    我的对话框上有两个 jDateChooser 我想保存到该数据类型有问题的 MS SQL DB 知道如何解决这个问题 仅当我将数据库中的数据类型转换为 nvarchar 并将值转换为从 jDateChooser 返回的字符串时 我才能执行此
  • Unity 中的 Firebase - 禁用持久性

    我正在使用 Firebase 制作 Android 手机游戏 该游戏有一个系统 允许玩家离线玩并根据保存的日期时间从数据库更新 检索数据 该日期时间 写入本地文件中 应该与数据库中保存的日期时间相同 为此 我编写了以下内容 referenc
  • NSDateComponents 问题 - 日期不正确

    我有一个 NSDateComponents 问题 我有两个 NSDate 我试图通过检查它们的年 月和日是否匹配来进行比较 我通过将 NSDate 值转换为这些整数分量来完成此操作 如下所示 NSDate cgiDate is previo
  • 如何从 C# 中的 JSON 字符串获取一些值?

    我有一个字符串 我想从中获取一些值 我的字符串看起来像 string1 r n id 100000280905615 r n name Jerard Jones r n first name Jerard r n last name Jon
  • 即使设置设为“从不”,iOS11 照片库也可以访问

    if UIImagePickerController isSourceTypeAvailable photoLibrary let imagePicker UIImagePickerController imagePicker source
  • android:识别ListView行中的单个项目?

    我在 ListActivity 中有一个由数据库表填充的 ListView ListView 的每一行都是一个relativelayout 其中包含三个依次命名为 rowid date 和 name 的 TextView 我可以使用 Lis
  • SwiftUI .sheet 视图调整大小问题(在 Macos 上测试)

    我有以下示例代码 import SwiftUI struct ContentView View State private var showModal false State private var hmm true var body so
  • protobuf 文本格式是什么样的?

    Google Protocol Buffers 不仅可以以二进制格式序列化 还可以序列化为文本 称为文本原型 然而 我无法轻易找到此类文本的示例 它会是什么样子 预期答案 一个涵盖 protobuf IDL proto 文件允许的所有功能的
  • 如何使用 Ktor 和 Kotlin 下载带有进度指示器的大文件?

    我花了太多时间试图解决这个问题 因此 我在下面发布的代码在下载文件方面确实有效 但问题是 该流程具有非常意外的行为 这response content readAvailable 方法调用似乎会阻塞 直到完全下载整个文件 此时发出进度发生
  • 尝试运行简单的monkeyrunner python脚本,'importerror no module named os'

    我的计算机上安装了 android 模拟器 SDK 并且我正在尝试运行一个简单的 python 脚本 但它在 导入操作系统 行上失败 这应该是标准的 这是我的脚本 import os print os environ PATH 当我针对实际
  • 如何在后台运行计时器?

    我有计时器代码 但如果我更改片段 计时器会重置为 00 00 我希望该计时器在我单击停止或暂停后仍然计数 或者这意味着该计时器仍然在后台计数 怎么做 这是我的代码 public class TimerFragment extends Bas
  • 连接到 Excel 时出现“无法识别 OLE 流”异常

    我试图将我的 Java 程序与 Excel 文件连接起来 我已经做到了这一点 但它抛出了这个异常 无法识别 OLE 流 请帮我完成这个工作 import jxl import java io public class excel publi
  • 是否有可能让 Java 忽略“信任存储”并只接受它获得的任何 SSL 证书?

    我正在尝试编写一个使用 javax mail API 发送邮件的 SSL 客户端 我遇到的问题是服务器请求我使用 SSL 但服务器还配置了非标准 SSL 证书 我发现的网页说我需要将证书安装到信任存储中 我不想这样做 我没有必要的权限 有没
  • 如何制作孤立的 dalvik

    我正在追踪 Dalvik 机器源代码 据此 我想让 Dalvik 可以运行 我似乎有 dvk 项目 但也存在很多问题导致故障 有没有什么方法可以只制作dalvik而无需所有android 因为制作android会花费太多时间 大约很多小时
  • 提高 git status 性能的方法

    我在一台位于 NFS 上的 Linux 机器上有一个 10 GB 的存储库 第一次git status需要 36 分钟及后续时间git status需要 8 分钟 看来 Git 依赖于操作系统来缓存文件 只有第一个git命令如commit
  • Java EE 和 JDK

    我想从 Java SE 迁移到 Java EE 我将使用 Java EE 附带的一些示例项目 我已经卸载了 JDK 但我认为这可能是一个错误 当我下载最新的 Java EE 6 时 安装时它会询问我 JDK 已卸载 的位置 我的印象是 JD
  • 双精度和浮点比较[重复]

    这个问题在这里已经有答案了 根据这个帖子 当比较 float 和 double 时 float 应被视为 double 下面的程序 似乎并不遵循这个说法 这种行为看起来相当不可预测 这是我的程序 void main void double
  • 检查 UIAlertView 是否显示

    我有一个方法可以发布 HTTP 数据并在出现错误时显示 UIAlertView 如果我有多个 HTTP post 我将为每个错误显示多个 UIAlertView 我只想在不显示其他 UIAlertView 时显示 UIAlertView 我
  • 更改模态文本后打开模态时,e.preventDefault 不起作用。模式正在打开而不更改内容

    我试图在单击模态触发按钮时更改模态正文文本 模式正在打开 但模式正文文本没有改变 这是模态的代码
  • Exchange Web 服务获取消息消息 ID

    我正在使用Java EWS 库尝试从 Exchange 邮箱同步邮件 我可以获得自上次同步日期以来创建的所有新消息的列表 但是 我真的很想找出消息ID从交换加载消息之前的消息属性 背景 我正在尝试将 EWS 同步集成到现有的邮件存储系统中