2013-07-04 36 views
2

我有一个轮询邮件服务器的需求。由于我的项目已经在Spring中使用Spring-Integration来查询邮件服务器。我在这方面取得了成功。但现在我必须轮询多个电子邮件。有些人可以让我知道如何去做。如何在Spring-Integration邮件支持中轮询多封电子邮件

这是我用来轮询单个邮件的示例代码。

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

<mail:inbound-channel-adapter id="imapAdapter" 
             store-uri="${imap.uri}"          
             channel="recieveEmailChannel"           
             should-delete-messages="false" 
             should-mark-messages-as-read="true"          
             auto-startup="true" 
             java-mail-properties="javaMailProperties"> 
     <int:poller fixed-delay="${imap.poolerSecondsDelay}" time-unit="SECONDS"/> 
    </mail:inbound-channel-adapter> 

    <int:channel id="recieveEmailChannel">   
     <int:interceptors> 
      <int:wire-tap channel="logger"/> 
     </int:interceptors> 
    </int:channel> 

    <int:logging-channel-adapter id="logger" level="DEBUG"/> 

    <int:service-activator input-channel="recieveEmailChannel" ref="emailReceiverService" method="receive"/> 

    <bean id="emailReceiverService" class="com.usbank.hermes.serviceimpl.EmailReceiverService"> 
    </bean> 

回答

2

将“max-messages-per-poll”添加到您的轮询器中。

即:

<int:poller max-messages-per-poll="10" fixed-delay="${imap.poolerSecondsDelay}" time-unit="SECONDS"/> 

应取从队列中的每个轮询10个邮件。