Вложение прикрепленных изображений в электронные письма HTML - PullRequest
17 голосов
/ 29 мая 2009

Если я прикреплю изображение к электронному письму, как я могу поместить его в контент HTML? Я попытался просто использовать имя файла в качестве источника изображения, но это не сработало.

Ответы [ 7 ]

11 голосов
/ 29 мая 2009

Более подробно о том, как создать почтовое сообщение в формате HTML.

Результатом будет сообщение MIME, состоящее из нескольких частей, с частью text / html (если вы действительно делаете это правильно с альтернативной частью типа text / plain) и несколькими изображениями, на которые затем ссылаются из HTML.

См. RFC 1813 и RFC 2378 для получения дополнительной информации об идентификаторе содержимого в смешанном MIME и связанных данных (указано CID в источнике HTML).

4 голосов
/ 14 марта 2012

Вы можете использовать тот же способ со свойством src="cid:bgBoletin" тега img.

3 голосов
/ 17 декабря 2012

Ответ на ваш вопрос в весенних документах здесь .

 mailSender.send(new MimeMessagePreparator() {
   public void prepare(MimeMessage mimeMessage) throws MessagingException {
     MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
     message.setFrom("me@mail.com");
     message.setTo("you@mail.com");
     message.setSubject("my subject");
     message.setText("my text <img src='cid:myLogo'>", true);
     message.addInline("myLogo", new ClassPathResource("img/mylogo.gif"));
   }
 });

Тело сообщения является одной из частей составного сообщения (обратите внимание, что второй параметр имеет значение true в конструкторе MimeMessageHelper, который устанавливает сообщение в составное сообщение).

Строка message.addInline("myLogo"... добавляет изображение как другую часть составного сообщения.

Вы можете использовать .setText, чтобы установить тело (содержимое HTML) сообщения электронной почты.

Вы можете ссылаться на другие части составного электронного письма (ваше изображение) с помощью тега cid. Обратите внимание, что атрибут img src равен src='cid:myLogo'. cid - это идентификатор содержимого изображения, отправляемого как часть составного сообщения.

3 голосов
/ 14 марта 2012

Я делаю это таким образом

_mime = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart = new MimeBodyPart();
DataSource fds = new FileDataSource("C:\\bgBoletin.jpg");

messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID", "<bgBoletin>");
_mime.addBodyPart(messageBodyPart);

И в файле HTM для ссылки Content-ID таким образом background: url (cid: bgBoletin).

2 голосов
/ 29 мая 2009

Если это связано с отправкой электронных писем с веб-сайта, который вы разрабатываете, просто сохраните изображения на своем сервере, а затем создайте ссылку на них, используя <img src="url"/>.

1 голос
/ 19 сентября 2018

В разделе прикрепления изображения требуется Content-ID

--T4nu9J8b
Content-Type: image/png
Content-ID: <idname>
Content-Transfer-Encoding: base64
Content-Disposition: attachment ;filename="testimage.png"

iVBORw0KGgoAAAANS...
--T4nu9J8b--

Примечание: имя Content-ID должно быть заключено в угловую скобку, как указано

Вставить его в тег, используя тот же Content-ID (без угловой скобки)

<img alt="Embedded Image" src="cid:idname"/>

Это должно позволить приложенному изображению отображаться в HTML!

0 голосов
/ 28 сентября 2017

Вариант 01:
- прикрепить файл «mySignaturePictue.jpg» как вложение к почте
- ссылаться на это вложение из тела (вставить его) с кодом типа:
<img src="cid:mySignaturePicture.png">

Вариант 02:
- преобразовать ваше изображение в строку base64: http://www.motobit.com/util/base64-decoder-encoder.asp
- вставьте его в mailtext / html-body с кодом, подобным
<img alt="My Image" src="data:image/jpeg;base64,AWWhcalkjsd/beginning/RXhp/of+/long/base64cod/ZgAATU0/+BlaBlubbZ5u8/61a+Xand/much/more..." />
- Недостаток: это заблокировано большинством клиентов и увеличит размер почты, см .: https://www.campaignmonitor.com/blog/email-marketing/2013/02/embedded-images-in-html-email/ и https://www.paperstreet.com/blog/email-marketing-embeded-images-cid-what-a-mess/

...