繁体   English   中英

如何更改m子的imap邮件提取顺序?

[英]how to change mule's imap mail fetch order?

我有一个IMAP连接,可以使用Mule获取电子邮件。 我遇到了一个问题。

这是我的两个简单要求:

  1. 我想以相反的顺序获取电子邮件。 (最新)
  2. 忽略SEEN消息,但不要删除它们。

我正在查看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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM