我想计算Exchange邮箱中邮件的年龄,以确保它们在我们的程序(C ++,MAPI)处理它们之前至少在那里停留一分钟。这样我们使用的垃圾邮件过滤器应该有足够的时间来完成它的工作。

由于运行我们程序的PC上的时间可能与Exchange服务器使用的时间不同,因此我们的程序必须通过MAPI读取服务器时间。

有优雅的解决方案吗?我能想到的一种方法是修改一些Item并立即读取它的 PR_LAST_MODIFICATION_TIME ,但我想避免这种情况。

修改结果 我们的程序是一个批处理作业,每10分钟运行一次并读取日记邮箱。

有帮助吗?

解决方案

我假设您在邮件到达Exchange邮箱时收到MAPI事件通知。我建议在处理消息之前将这些消息推入队列并等待 n 秒(例如60秒)。由于时间是相对于通知事件的,因此计算机之间的时钟漂移没有问题。

在启动应用程序时,您将被迫再次对现有消息执行此操作,但我不认为这会造成问题。

scroll top