gpt4 book ai didi

exchangewebservices - subscribeToPullNotifications 未检测收件箱中的新电子邮件

转载 作者:行者123 更新时间:2023-12-04 12:55:22 25 4
gpt4 key购买 nike

我正在尝试使用 subscribeToPullNotifications 检测收件箱中的新电子邮件,如下所示:

PullSubscription subscription = service.subscribeToPullNotifications(
folder, 1, null, EventType.NewMail);

GetEventsResults events = subscription.getEvents();
System.out.println("####### EVENTS: "
+ events.getItemEvents().toString());
for (ItemEvent itemEvent : events.getItemEvents()) {
if (itemEvent.getEventType() == EventType.NewMail) {
EmailMessage message = EmailMessage.bind(service,
itemEvent.getItemId());
System.out.println("######## NEW EMAIL MESSAGE IS: "
+ message.getSubject());
}
}

events.getItemEvents()始终为空,即使我可以在收件箱中看到新电子邮件。
还如何使上述代码在应用程序运行时始终重复,以便每分钟检查新电子邮件。

最佳答案

这取决于您何时调用它,如果假设您将其称为特定时间间隔,那么您需要在新请求中传递先前响应的“WaterMark”,否则发生在两者之间的所有事件都将丢失。
方法:subscription.getWaterMark()

需要将此作为第三个参数传递给方法 subscribeToPullNotifications()

否则,您可以通过将其放入循环中来持续使用相同的服务:

 while (true) {

GetEventsResults events = null;

try {
events = subscription.getEvents();
} catch (Exception e1) {
e1.printStackTrace();
}

for (ItemEvent itemEvent : events.getItemEvents()) {
// do something...
}

}

但这会不断地从服务器增加负载中拉出来,所以宁愿使用第一种方法,通过定期订阅,并在请求中传递先前的水印。

关于exchangewebservices - subscribeToPullNotifications 未检测收件箱中的新电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13440588/

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