В приложении, над которым я работаю, есть функция, которая подключается к почтовому серверу через IMAP с помощью JavaMail. У одного из наших клиентов была следующая трассировка стека:
javax.mail.MessagingException: A13 BAD Command Argument Error. 11;
nested exception is:
com.sun.mail.iap.BadCommandException: A13 BAD Command Argument Error. 11
at com.sun.mail.imap.IMAPMessage.setFlags(IMAPMessage.java:847)
at javax.mail.Message.setFlag(Message.java:565) ...
Теперь то, что он пытался сделать, это следующее:
messages[i].setFlag(Flags.Flag.RECENT, false);
Где messages[i]
это javax.mail.Message
.
Эта ошибка никогда не возникала ни у одного из наших клиентов, использующих Exchange Server 2003, и, поскольку этот клиент использует Exchange Server 2007, я предполагаю, что это как-то связано с этим (ошибка?). Я также убедился, что они обновили его до последнего пакета обновления и накопительного обновления (пакет обновления 1, обновление 8 на момент написания этой статьи) и последней версии JavaMail (1.4.2 на момент написания этой статьи), и это не повлияло. Мой вопрос в том, что мне нужно ждать, пока Microsoft исправит? Есть ли обходной путь, который я могу использовать?
Для справки, причина, по которой я устанавливаю для последнего флага значение false, заключается в том, что данное сообщение не будет обрабатываться снова во втором проходе (т. е. оно обрабатывает только последние или новые сообщения).