0
我使用spring 3.0.6和spring integration 2.0.3。如果我將電子郵件標記爲未讀,或者如果我多次收到新電子郵件,則適配器不會讀取它。我不確定這是IMAP服務器問題還是API問題。下面是相同的調試日誌。Java Mail使用彈簧郵件適配器讀取不一致的行爲
{ DEBUG: JavaMail version 1.4.5
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc]
DEBUG: mail.imap.fetchsize: 16384
DEBUG: mail.imap.statuscachetimeout: 1000
DEBUG: mail.imap.appendbuffersize: -1
DEBUG: mail.imap.minidletime: 10
2013-01-16 11:58:00,232 [task-scheduler-1] DEBUG org.springframework.integration.mail.ImapMailReceiver - connecting to store [imap://username:*****@IMAP server IP:143/Inbox]
DEBUG: trying to connect to host "IMAP server IP", port 143, isSSL false
* OK The Microsoft Exchange IMAP4 service is ready. BURCA1
A0 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI AUTH=PLAIN STARTTLS IDLE NAMESPACE LITERAL+
A0 OK CAPABILITY completed.
DEBUG IMAP: AUTH: NTLM
DEBUG IMAP: AUTH: GSSAPI
DEBUG IMAP: AUTH: PLAIN
DEBUG: protocolConnect login, host=IMAP server IP, user=username, password=<non-null>
DEBUG IMAP: AUTHENTICATE PLAIN command trace suppressed
DEBUG IMAP: AUTHENTICATE PLAIN command result: A1 OK AUTHENTICATE completed.
A2 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI AUTH=PLAIN STARTTLS IDLE NAMESPACE LITERAL+
A2 OK CAPABILITY completed.
DEBUG IMAP: AUTH: NTLM
DEBUG IMAP: AUTH: GSSAPI
DEBUG IMAP: AUTH: PLAIN
A3 LIST "" Inbox
* LIST (\Marked \HasChildren) "/" INBOX
A3 OK LIST completed.
2013-01-16 11:58:00,488 [task-scheduler-1] DEBUG org.springframework.integration.mail.ImapMailReceiver - opening folder [imap://username:*****@IMAP server IP:143/Inbox]
DEBUG: connection available -- size: 1
A4 SELECT INBOX
* 26 EXISTS
*** 0 RECENT**
* FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)
* OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)] Permanent flags
* OK [UIDVALIDITY 5298] UIDVALIDITY value
* OK [UIDNEXT 213] The next unique identifier value
A4 OK [READ-WRITE] SELECT completed.
2013-01-16 11:58:00,553 [task-scheduler-1] INFO org.springframework.integration.mail.ImapMailReceiver - attempting to receive mail from folder [INBOX]
A5 SEARCH UNANSWERED UNDELETED NOT (SEEN) ALL
* SEARCH
A5 OK SEARCH completed.
2013-01-16 11:58:00,590 [task-scheduler-1] DEBUG org.springframework.integration.mail.ImapMailReceiver - found 0 new messages
A6 EXAMINE INBOX
* 26 EXISTS
* 0 RECENT
* FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)
* OK [PERMANENTFLAGS()] Permanent flags
* OK [UIDVALIDITY 5298] UIDVALIDITY value
* OK [UIDNEXT 213] The next unique identifier value
A6 OK [READ-ONLY] EXAMINE completed.
A7 CLOSE
A7 OK CLOSE completed.
DEBUG: added an Authenticated connection -- size: 1
}
嗨,比爾,如果我再次看到郵箱,所有未讀消息都顯示爲在Outlook Web客戶端中讀取,但適配器沒有看到新的/未讀消息。我不確定我是否正確理解你的問題。謝謝! –
打開org.springframework.integration的DEBUG級別日誌記錄 - 它應該爲您提供更多見解。 –
另一個問題......當你說「很多時候適配器沒有看到它」,這是否意味着它有時會像你期望的那樣工作,有時它不會呢?如果是這樣,你有另一個客戶端(Outlook等)使用相同的郵箱嗎?在你有機會看到它們之前,另一個客戶端可能會將這些消息標記爲已讀。 –