从imap adapter spring集中获取所有发送的邮件

时间:2016-09-20 10:18:30

标签: spring-integration

我需要获取所有未删除但未发生的已发送邮件,但仅显示总邮件,最近在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();



    }
});
}

1 个答案:

答案 0 :(得分:1)

请参阅the documentation,您需要使用自定义SearchTermStrategy

  

默认情况下,ImapMailReceiver将根据默认的SearchTerm搜索消息,这些消息是最近的所有邮件(如果支持),没有回答,没有删除,没有看到,没有已被此邮件接收器处理(通过使用自定义USER标志启用,或者如果不支持则不是标记)。自定义用户标志为spring-integration-mail-adapter,但可以进行配置。从版本2.2开始,ImapMailReceiver使用的SearchTerm可以通过SearchTermStrategy完全配置,您可以通过search-term-strategy属性注入。{1}}。 SearchTermStrategy是一个简单的策略接口,只有一个方法,允许您创建将由ImapMailReceiver使用的SearchTerm实例。