Как сравнить два объекта MimeMessage.java, чтобы убедиться, что они совпадают? - PullRequest
0 голосов
/ 20 марта 2019

Мы переключаемся со старой системы на новую и имеем один путь (новый путь), который отбрасывается до тех пор, пока он не будет соответствовать старой системе. Старая система создает MimeMessage в запутанном виде, и, к сожалению, MimeMessage - это не просто объект данных (хотя я думаю, что так и должно быть).

Какие данные мне нужно извлечь из MimeMessage для сравнения, чтобы убедиться, что обе системы на 100% одинаковы?

Еще лучше, есть ли Helper.writeMimeToBytes (mimeMessage), который я мог бы запустить на обоих и сравнить байты. Метод writeTo не записывает заголовки, поэтому нет необходимости. Мне нужно что-то, что я могу выписать MimeMessage из каждой системы и сравнить, а затем покопаться в различиях.

У них действительно должен был быть MimeMessage, представляющий собой просто данные, где работает метод equals (), так как он лучше подходит и для тестирования, и для проверки.

ИСПРАВЛЕНИЕ: Я неправильно прочитал документы. это предложение «Вывести сообщение в виде потока формата RFC 822 без заданных заголовков» поймало меня и фактически означало, что оно передается в нулевом массиве, но оказывается, что составные байты всегда будут отличаться, как Билл Шеннон указывает в своем ответе ниже, который все еще проблема. Чертов MimeMessage.

спасибо, Декан

1 Ответ

0 голосов
/ 21 марта 2019

MimeMessage.writeTo действительно записывает заголовки.

Я был бы шокирован, если бы два независимо сконструированных и нетривиальных MIME-сообщения были бы байтовыми. Как минимум, Message-Id должен быть другим, как и составные граничные строки.

...