У меня была похожая проблема в электронных письмах HTML: таинственные пропущенные периоды и в одном случае странно усеченное сообщение. JavaMail отправляет электронную почту в формате HTML, используя кодировку для печати в кавычках, которая переносит строки в любой точке (т. Е. Не только в пробелах), чтобы ни одна строка не превышала 76 символов. (Он использует '=' в конце строки в качестве мягкого возврата каретки, поэтому получатель может повторно собрать строки.) Это может легко привести к строке, начинающейся с точки, которая должна быть удвоена. (Это называется «расстановка точек»). Если нет, период будет съеден принимающим SMTP-сервером или, что еще хуже, если период является единственным символом в строке, он будет интерпретироваться SMTP-сервером как конец сообщение.
Я проследил это до реализации GNU JavaMail 1.1.2 (он же classpathx javamail). Нет более новой версии этой реализации, и она не обновлялась в течение 4 или 5 лет. Глядя на источник, он частично реализует заполнение точками - он пытается обрабатывать период в строке сам по себе, но есть ошибка, которая препятствует работе даже этого случая.
К сожалению, это была реализация по умолчанию на нашей платформе (Centos 5), поэтому я думаю, что это также значение по умолчанию на RedHat.
Исправление в Centos - установка Sun (или я должен теперь сказать Oracle) реализации JavaMail (я использовал 1.4.4) и использование команды Centos альтернатив , чтобы установить ее вместо стандартной. реализация. (Использование альтернатив гарантирует, что установка исправлений Centos не вызовет возврата к реализации GNU.)