JavaMail Folder.search() возвращает несколько сообщений IMAP, даже если MessageIDTerm передается методу. Это происходит, когда сообщения являются последующими вперед оригинального сообщения. Версия JavaMail - 1.4.4. Почтовым сервером является MS Exchange 2013. Пользователи отправляют письма с помощью MS Outlook. Вот код:Метод поиска папок JavaMail возвращает несколько сообщений для уникального MessageID
MessageIDTerm messageIDTerm = new MessageIDTerm(uniqueMessageID);
Message[] messages = folder.search(messageIDTerm);
Если uniqueMessageID это идентификатор сообщения из сообщения электронной почты был направлен, массив сообщений будет содержать сообщение с uniqueMessageID и всех последующих пересылаемых сообщений. Правильно ли это? Есть ли способ получить только сообщение с messagedID, переданное методу поиска?
Идентификатор сообщения не обязательно уникален. Это данные, заданные отправителем, и некоторые отправители являются ошибками. – arnt
Я уверен, что идентификатор сообщения уникален. У меня есть тестовый пример с четырьмя сообщениями, и они имеют разные идентификаторы сообщений: <[email protected]><[email protected]><[email protected]><[email protected]> Первый идентификатор идентификатор оригинальное сообщение, другое - идентификаторы трех форвардов исходного сообщения, сделанного одним и тем же пользователем. Если вы ищете первый MessageID, вы получаете все четыре сообщения. – dascolagi