Как отобразить изображение в html почтовом сообщении? - PullRequest
1 голос
/ 24 августа 2010

Я пишу приложение j2ee, которое генерирует HTML и отправляет его по электронной почте. В моем html есть изображение, но оно не отображается при получении письма. HTML-код выглядит примерно так:

<img src="myimage.gif"></img>

где "myimage.gif" отправляется в виде вложенного файла в электронное письмо. Я пытался изменить его на

<img src="cid:myimage.gif"></img>

но все равно нет результата. Есть идеи? Должно быть без ссылки на изображение.

Ответы [ 3 ]

3 голосов
/ 24 августа 2010

Вы должны загрузить свое изображение на свой сервер и указать его в качестве жестко запрограммированного URL-адреса в src

, например, загрузить на myserver.com/images/myimage.gif в своем html

<img src="http://myserver.com/images/myimage.gif" />
1 голос
/ 24 августа 2010

Взгляните на Commons Email .Он построен на основе Java Mail API, но упрощает его.

У них есть пример для отправки html-писем со встроенными изображениями http://commons.apache.org/email/userguide.html

import org.apache.commons.mail.HtmlEmail;
...

// Create the email message
HtmlEmail email = new HtmlEmail();
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("Test email with inline image");

// embed the image and get the content id
URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
String cid = email.embed(url, "Apache logo");

// set the html message
email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>");

// set the alternative message
email.setTextMsg("Your email client does not support HTML messages");

// send the email
email.send();
0 голосов
/ 24 августа 2010

Если изображение достаточно маленькое, вы можете использовать мой пиксельный формат HTML-таблицы:)

см. Подробности в моем блоге: HTML-пиксельный формат таблицы

Это просто действительный HTML, однако он отображается как изображение.

/ конец бесстыдного плагина

...