When accessing DavMail IMAP (to Exchange EWS) from a Spring-Integrations application, davmail 4.6.2 produces the error
2015-09-08 23:24:30,159 DEBUG [ImapConnection-46903] davmail - > * OK [UIDVALIDITY 1]
2015-09-08 23:24:30,160 DEBUG [ImapConnection-46903] davmail - > * OK [UIDNEXT 1515]
2015-09-08 23:24:30,160 DEBUG [ImapConnection-46903] davmail - > * FLAGS (\Answered \Deleted \Draft \Flagged \Seen $Forwarded Junk)
2015-09-08 23:24:30,160 DEBUG [ImapConnection-46903] davmail - > * OK [PERMANENTFLAGS (\Answered \Deleted \Draft \Flagged \Seen $Forwarded Junk *)]
2015-09-08 23:24:30,161 DEBUG [ImapConnection-46903] davmail - > A3 OK [READ-WRITE] SELECT completed
2015-09-08 23:24:30,209 DEBUG [ImapConnection-46903] davmail - < A4 SEARCH NOT (ANSWERED) NOT (DELETED) NOT (SEEN) NOT (KEYWORD spring-integration-mail-adapter) ALL
2015-09-08 23:24:30,998 ERROR [ImapConnection-46903] davmail - Invalid search parameters: KEYWORD spring-integration-mail-adapter
davmail.exception.DavMailException: Invalid search parameters: KEYWORD spring-integration-mail-adapter
at davmail.imap.ImapConnection.appendSearchParam(ImapConnection.java:1430)
at davmail.imap.ImapConnection.appendSearchParam(ImapConnection.java:1359)
at davmail.imap.ImapConnection.buildConditions(ImapConnection.java:1024)
at davmail.imap.ImapConnection.handleSearch(ImapConnection.java:1035)
at davmail.imap.ImapConnection.run(ImapConnection.java:368)
2015-09-08 23:24:31,013 DEBUG [ImapConnection-46903] davmail - > A4 BAD unable to handle request: Invalid search parameters: KEYWORD spring-integration-mail-adapter
Attached a patch that fixes this problem by tokenizing each NOT clause rather than treating it as a string.
Patch merged, thanks for your contribution, and sorry for the answer delay
Last edit: Mickael Guessant 2018-01-03
Fixed in 4.8.3