[英]how to change mule's imap mail fetch order?
我有一个IMAP连接,可以使用Mule获取电子邮件。 我遇到了一个问题。
这是我的两个简单要求:
我正在查看m子(3.3.1)使用的代码:org.mule.transport.email.RetrieveMessageReceiver.poll()。
该代码似乎正在从消息1中获取消息。
348: Message[] messages = folder.getMessages(1, batchSize);
此处获取的消息将在以下循环中处理:
org.mule.transport.email.RetrieveMessageReceiver.message☎联系人(MessageCountEvent)
142: if (!messages[i].getFlags().contains(Flags.Flag.DELETED)
143: && !messages[i].getFlags().contains(Flags.Flag.SEEN))
整个逻辑所要做的是,它试图读取OLD未读消息。 该代码返回到第348行并执行
folder.getMessages(1, batchSize);
再次,并获得相同的消息,并继续等待。 如何更改获取顺序。
仅供参考:使用MS Exchange for IMAP
不确定为什么您说Mule尝试阅读“旧的未读邮件”? 它实际上只是尝试读取未读的消息,即不删除也不看。
无论如何,理论上对消息进行排序的Mulesque方法将是使用resequencer 。 不幸的是,邮件消息接收者没有设置任何必需的控件属性,以使Mule可以单批处理接收到的消息,从而无法正常工作。
因此,我唯一想到的解决方案是扩展org.mule.transport.email.RetrieveMessageReceiver
并使用<service-overrides />
子元素在IMAP连接器上注册您的自定义版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.