powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaMail. Интерпретация отображения содержимого в разных почтовиках.
3 сообщений из 3, страница 1 из 1
JavaMail. Интерпретация отображения содержимого в разных почтовиках.
    #34333207
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сервере формируется письмо, в которое вставляются "картинки", созданные динамически с помощью Java2D, содержимое которых запаковано JPEGImageEncoder и передано потоком массива байт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
MimeMultipart multipart =  new  MimeMultipart();
   //основное тело письма
BodyPart messageBodyPart =  new  MimeBodyPart();
   //его контент (обрезан для удобства)
messageBodyPart.setContent("tra-la-la ... <img src=\"cid:image1\"> ... tra-la-la", "text/html");
multipart.addBodyPart(messageBodyPart);
   //создание экземпляра объекта, создающего jpeg
JPEGcreator _jpeg =  new  JPEGcreator();
   //та часть письма, куда входит jpeg
MimeBodyPart image1Part =  new  MimeBodyPart();
   //получаем поток байт из моего модуля
 byte [] jpegStream = _jpeg.getMyJPEG();
   //заполняем image1Part содержимым
image1Part.setDataHandler( new  DataHandler( new  ByteArrayDataSource(jpegStream, "image/jpeg")));
   //назначаем содержимому ContentID для последующего вложения
image1Part.setContentID("image1");
   //добавляем jpeg к письму
multipart.addBodyPart(image1Part);

Ну, дальше стандартные манипуляции с MimeMessage и отправка письма.
Все замечательно срабатывает, отсылает, получает и отображает ... но только в Microsoft Outlook.

Если же пользователь получает письмо из Outlook Express, то:
а) все jpeg-и идут как attachment с именами "pat{8-10 цифр}.jpg", хотя в MS Outlook они идут как inbody - отображаются только в теле письма;
б) в теле письма не отражаются (зона графики есть, но содержимое недоступно), опять-таки, видимо из-за названий, так как в письме указано <img src=\"cid:image1\">, а в attachment совершенно другое имя (которое я не назначал);
в) все "всунутые" в сообщение jpeg-и отражаются после сформированного содержимого письма друг за дружкой.

Если пользоваться для получения почты онлайн-агентом (mail.ru, hotmail.com, gmail.com и пр.), то все точно так же, только все jpeg-и отображаются не после, а до письма.

Возможно, кто-то неплохо разбирается с механизмом формирования письма (message) в JavaMail и неплохо разбирается в природе самого email-message и ответит на вопросы:

почему по-разному идет отображение сообщения? (есть ли тут причины в создании самого сообщения?)
могу ли я повлиять на расположение создаваемых JPEG-ов, мне они прикрепленными не нужны - исключительно в теле письма?
правильно ли происходит само формирование сообщения?

Буду очень благодарен за любой дельный совет.

P.S. Отправка письма с графикой является альтернативой письму с вложенным PDF для осуществления более полного доступа к конечному пользователю. То есть такое формирование письма - обязательно.

Спасибо.
...
Рейтинг: 0 / 0
JavaMail. Интерпретация отображения содержимого в разных почтовиках.
    #34338037
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, люди! Это же очень распространенная тема (JavaMail), неужели ничего дельного по этому вопросу нет?

Спасибо.
...
Рейтинг: 0 / 0
JavaMail. Интерпретация отображения содержимого в разных почтовиках.
    #34342590
PassingBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй в MimeBodyPart для картинок выставлять в конструкторе субтип related (по умолчанию mixed устанавливается)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaMail. Интерпретация отображения содержимого в разных почтовиках.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]