簡體   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