我需要获取所有未删除但未发生的已发送邮件,但仅显示总邮件,最近在mail.debug中的控制台是真的
<int:channel id="receiveChannel" />
<int-mail:imap-idle-channel-adapter id="customAdapter"
store-uri="imaps://rupak@domain.com:pass@domain.com:993/INBOX.Sent"
channel="receiveChannel"
auto-startup="true"
should-delete-messages="false"
should-mark-messages-as-read="false"
java-mail-properties="javaMailProperties"/>
<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">true</prop>
</util:properties>
public static void main (String[] args) throws Exception {
ApplicationContext ac = new ClassPathXmlApplicationContext("spring/gmail-imap-idle-config.xml");
DirectChannel inputChannel = ac.getBean("receiveChannel", DirectChannel.class);
inputChannel.subscribe(new MessageHandler() {
public void handleMessage(Message<?> message) throws MessagingException {
MimeMessage mimeMessage = (MimeMessage) message.getPayload();
}
});
}
答案 0 :(得分:1)
请参阅the documentation,您需要使用自定义SearchTermStrategy
。
默认情况下,
ImapMailReceiver
将根据默认的SearchTerm搜索消息,这些消息是最近的所有邮件(如果支持),没有回答,没有删除,没有看到,没有已被此邮件接收器处理(通过使用自定义USER标志启用,或者如果不支持则不是标记)。自定义用户标志为spring-integration-mail-adapter
,但可以进行配置。从版本2.2开始,ImapMailReceiver使用的SearchTerm可以通过SearchTermStrategy
完全配置,您可以通过search-term-strategy
属性注入。{1}}。SearchTermStrategy
是一个简单的策略接口,只有一个方法,允许您创建将由ImapMailReceiver使用的SearchTerm实例。