我正在开发一个应用程序,该应用程序每周从IMAP服务器接收电子邮件并生成有关该电子邮件的统计信息。其中之一就是主题相同的电子邮件数量。
我一直在考虑使用重新排序器来存储来自服务器的所有消息,并在接收到所有新消息时生成统计信息,并最终分别发送消息。
但是我错过了sequence_number
和correlation_id
,当服务器上的消息结束时,我找不到正确的释放组的方法。
这是我的integration-context.xml
:
<int:channel id="startMailSync"/>
<int:control-bus id="start" input-channel="startMailSync"/>
<int:channel id="receiveChannel" datatype="javax.mail.internet.MimeMessage" />
<int-mail:inbound-channel-adapter
id="mailClient"
channel="receiveChannel"
java-mail-properties="javaMailProperties"
store-uri="imaps://[user]:[password]@mail.it/INBOX"
should-mark-messages-as-read="true"
should-delete-messages="false"
mail-filter-expression="from[0].address matches 'sender@sender.it'"
auto-startup="false">
<int:poller trigger="runOnceTrigger" max-messages-per-poll="100"/>
</int-mail:inbound-channel-adapter>
<util:properties id="javaMailProperties">
<prop key="mail.imap.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
<prop key="mail.imap.socketFactory.fallback">false</prop>
<prop key="mail.store.protocol">imaps</prop>
<prop key="mail.debug">false</prop>
</util:properties>
<int:resequencer
input-channel="receiveChannel"
output-channel="a"
>
答案 0 :(得分:0)
您应该使用聚合器而不是重新排序器;您可以使用自定义关联策略/表达(例如与主题相关)和自定义发布策略/表达。