2016-10-03 10 views
1

Spring統合メールを使用して自分のGmailアカウントに受信メッセージを受信して​​います。メッセージは問題なく受信されますが、私のGmailアカウントには常に読み込まれて表示されます。ここに私のXML構成は次のとおりです。春の統合では、受信したメッセージを常に読み取り済みとしてマークします。

<int:channel id="receiveChannel"/> 
replace 'userid and 'password' with the real values 
<int-mail:imap-idle-channel-adapter id="customAdapter" 
            store-uri="imaps://proximahaiz%40gmail.com:[email protected]:993/inbox" 
            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 key="mail.debug">false</prop> 
</ 

私は=「偽」が、まだ読んとしてマークされたすべての受信メッセージをお読みください - マーク・メッセージ-として-パラメータを追加しました。 4.2.9.RELEASEバージョンのSpring Integrationを使用します。 これは私のJavaコードです:

public class GmailInboundImapIdleAdapterServiceImpl implements GmailInboundImapIdleAdapterService { 
private static Logger logger = Logger.getLogger(GmailInboundImapIdleAdapterServiceImpl.class); 
private static String MAIL_SUBJECT = "mail_subject"; 
private static String MAIL_FROM = "mail_from"; 
private static EmailParser emailParser = new EmailParser(); 
@Autowired 
private EmailReceiverService emailReceiverService; 


@Override 
public void startReceiveEmails() { 
    ApplicationContext acProxy = new ClassPathXmlApplicationContext("/integration/gmail-imap-idle-config-proxytest.xml"); 
    DirectChannel inputChannelProxy = acProxy.getBean("receiveChannel", DirectChannel.class); 

    inputChannelProxy.subscribe(new MessageHandler() { 
     @Override 
     public void handleMessage(Message<?> message) throws MessagingException { 
      initMessageReceiving(message); 
     } 
    }); 
} 

は、私は自分のアプリケーションにそれらを受け取った後Gmailアカウントに未読メッセージを残すために何をしなければなら?

logs from debug

答えて

0

trueに変更mail.debug Javaプロパティを。

メッセージ読み取りフラグをfalseに設定する必要がある場合、アダプタはデバッグ出力を確認して確認できる\Seenフラグを設定しないでください。

その場合、GmailはIMAPプロトコルを遵守しておらず、他の基準を使用してメッセージを既読としてマークしていない可能性があります。

+0

そして、FETCH.PEEKを使用する必要があります(FETCHまたはEXAMINEではなくSELECTを使用する必要があります)。 – Max

+0

迅速な対応をありがとう。アップロードされたログ、あなたはそれらを見て、何が間違っていると言えませんか? –

+1

さらに多くのログを表示する必要があります。それは検索のみを表示します。全部をテキストファイルとしてアップロードできませんか? –

関連する問題