Mule を使用してメールを取得するための IMAP 接続があります。問題が発生しています。
私の2つの簡単な要件は次のとおりです。
- メールを逆順に取得したい。(最新順)
- SEEN メッセージを無視しますが、削除しないでください。
mule (3.3.1) が使用するコードを見ていました: org.mule.transport.email.RetrieveMessageReceiver.poll()。
コードはメッセージ 1 からメッセージを取得しているようです。
348: Message[] messages = folder.getMessages(1, batchSize);
ここで取得されたメッセージは、次のループで処理されます。
org.mule.transport.email.RetrieveMessageReceiver.messagesAdded(MessageCountEvent)
142: if (!messages[i].getFlags().contains(Flags.Flag.DELETED)
143: && !messages[i].getFlags().contains(Flags.Flag.SEEN))
このロジック全体が行っていることは、古い未読メッセージを読み取ろうとしているということです。コードは 348 行目に戻って実行されます。
folder.getMessages(1, batchSize);
再び、同じメッセージを取得し、待機し続けます。フェッチの順序を変更するにはどうすればよいですか。
参考までに: IMAP に MS Exchange を使用する