Issue accessing Apache James Server using inbound-channel-adapter
I was trying to access the Apache James Inbox for emails and encountered the following exception:
Code:
IMAP DEBUG: IMAPProtocol noop
A7 NOOP
A7 OK NOOP completed.
A8 LIST "" EBTS
* LIST (\HasNoChildren) "." "EBTS"
A8 OK LIST completed.
DEBUG: org.springframework.integration.mail.ImapMailReceiver - opening folder [imap://ebts.incoming@alvinworld.com:*****@alvinworld.com:143/EBTS]
[DEBUG 2012-02-15 17:42:51,965] opening folder [imap://ebts.incoming@alvinworld.com:*****@alvinworld.com:143/EBTS]
DEBUG: connection available -- size: 1
A9 SELECT EBTS
* FLAGS (\Answered \Deleted \Draft \Flagged \Seen)
* 1 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 620175594] UIDs valid
* OK [PERMANENTFLAGS (\Answered \Deleted \Draft \Flagged \Seen \*)] Limited
* OK [UIDNEXT 2] Predicted next UID
A9 OK [READ-WRITE] SELECT completed.
INFO : org.springframework.integration.mail.ImapMailReceiver - attempting to receive mail from folder [EBTS]
[INFO 2012-02-15 17:42:51,981] attempting to receive mail from folder [EBTS]
DEBUG: org.springframework.integration.mail.ImapMailReceiver - This email server does not support RECENT flag, but it does support USER flags which will be used to prevent duplicates during email fetch.
[DEBUG 2012-02-15 17:42:51,981] This email server does not support RECENT flag, but it does support USER flags which will be used to prevent duplicates during email fetch.
A10 SEARCH NOT (ANSWERED) NOT (DELETED) NOT (SEEN) NOT (KEYWORD spring-integration-mail-adapter) ALL
A10 BAD SEARCH failed. Illegal arguments.
A11 EXAMINE EBTS
* FLAGS (\Answered \Deleted \Draft \Flagged \Seen)
* 1 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 620175594] UIDs valid
* OK [PERMANENTFLAGS (\Answered \Deleted \Draft \Flagged \Seen \*)] Limited
* OK [UIDNEXT 2] Predicted next UID
A11 OK [READ-ONLY] EXAMINE completed.
A12 CLOSE
A12 OK CLOSE completed.
DEBUG: added an Authenticated connection -- size: 1
ERROR: org.springframework.integration.handler.LoggingHandler - org.springframework.integration.MessagingException: failure occurred while polling for mail
at org.springframework.integration.mail.MailReceivingMessageSource.receive(MailReceivingMessageSource.java:73)
at org.springframework.integration.endpoint.SourcePollingChannelAdapter.doPoll(SourcePollingChannelAdapter.java:89)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$1.call(AbstractPollingEndpoint.java:146)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$1.call(AbstractPollingEndpoint.java:144)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$Poller$1.run(AbstractPollingEndpoint.java:207)
at org.springframework.integration.util.ErrorHandlingTaskExecutor$1.run(ErrorHandlingTaskExecutor.java:52)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:48)
at org.springframework.integration.util.ErrorHandlingTaskExecutor.execute(ErrorHandlingTaskExecutor.java:49)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$Poller.run(AbstractPollingEndpoint.java:202)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:51)
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.mail.MessagingException: A10 BAD SEARCH failed. Illegal arguments.;
nested exception is:
com.sun.mail.iap.BadCommandException: A10 BAD SEARCH failed. Illegal arguments.
at com.sun.mail.imap.IMAPFolder.search(IMAPFolder.java:1547)
at org.springframework.integration.mail.ImapMailReceiver.searchForNewMessages(ImapMailReceiver.java:124)
at org.springframework.integration.mail.AbstractMailReceiver.receive(AbstractMailReceiver.java:231)
at org.springframework.integration.mail.MailReceivingMessageSource.receive(MailReceivingMessageSource.java:59)
... 18 more
Caused by: com.sun.mail.iap.BadCommandException: A10 BAD SEARCH failed. Illegal arguments.
at com.sun.mail.iap.Protocol.handleResult(Protocol.java:296)
at com.sun.mail.imap.protocol.IMAPProtocol.issueSearch(IMAPProtocol.java:1471)
at com.sun.mail.imap.protocol.IMAPProtocol.search(IMAPProtocol.java:1379)
at com.sun.mail.imap.protocol.IMAPProtocol.search(IMAPProtocol.java:1367)
at com.sun.mail.imap.IMAPFolder.search(IMAPFolder.java:1527)
... 21 more
[ERROR 2012-02-15 17:42:51,981] org.springframework.integration.MessagingException: failure occurred while polling for mail
at org.springframework.integration.mail.MailReceivingMessageSource.receive(MailReceivingMessageSource.java:73)
at org.springframework.integration.endpoint.SourcePollingChannelAdapter.doPoll(SourcePollingChannelAdapter.java:89)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$1.call(AbstractPollingEndpoint.java:146)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$1.call(AbstractPollingEndpoint.java:144)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$Poller$1.run(AbstractPollingEndpoint.java:207)
at org.springframework.integration.util.ErrorHandlingTaskExecutor$1.run(ErrorHandlingTaskExecutor.java:52)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:48)
at org.springframework.integration.util.ErrorHandlingTaskExecutor.execute(ErrorHandlingTaskExecutor.java:49)
at org.springframework.integration.endpoint.AbstractPollingEndpoint$Poller.run(AbstractPollingEndpoint.java:202)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:51)
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.mail.MessagingException: A10 BAD SEARCH failed. Illegal arguments.;
nested exception is:
com.sun.mail.iap.BadCommandException: A10 BAD SEARCH failed. Illegal arguments.
at com.sun.mail.imap.IMAPFolder.search(IMAPFolder.java:1547)
at org.springframework.integration.mail.ImapMailReceiver.searchForNewMessages(ImapMailReceiver.java:124)
at org.springframework.integration.mail.AbstractMailReceiver.receive(AbstractMailReceiver.java:231)
at org.springframework.integration.mail.MailReceivingMessageSource.receive(MailReceivingMessageSource.java:59)
... 18 more
Caused by: com.sun.mail.iap.BadCommandException: A10 BAD SEARCH failed. Illegal arguments.
at com.sun.mail.iap.Protocol.handleResult(Protocol.java:296)
at com.sun.mail.imap.protocol.IMAPProtocol.issueSearch(IMAPProtocol.java:1471)
at com.sun.mail.imap.protocol.IMAPProtocol.search(IMAPProtocol.java:1379)
at com.sun.mail.imap.protocol.IMAPProtocol.search(IMAPProtocol.java:1367)
at com.sun.mail.imap.IMAPFolder.search(IMAPFolder.java:1527)
... 21 more
Currently, i am able to access the same inbox using Thunderbird using IMAP protocol. Below is my spring configuration for your reference:
Code:
<int:channel id="receiveChannel" />
<int-mail:inbound-channel-adapter id="ebts.incoming.adapter"
store-uri="imap://ebts.incoming%40alvinworld.com:*******@alvinworld.com:143/EBTS"
java-mail-properties="javaMailProperties"
channel="receiveChannel"
should-delete-messages="false"
should-mark-messages-as-read="false"
mail-filter-expression="subject matches '(?i).*[EBTS]*'"
auto-startup="true">
<int:poller max-messages-per-poll="1" fixed-rate="5000"/>
</int-mail:inbound-channel-adapter>
<util:properties id="javaMailProperties">
<prop key="mail.store.protocol">imap</prop>
<prop key="mail.debug">true</prop>
</util:properties>
Thanks in advance.