Как встраивать изображения в электронную почту HTML на почтовом сервере? - PullRequest
5 голосов
/ 08 февраля 2009

Как встроить изображение в HTML, чтобы изображение доставлялось с содержимым файла html и не требовало отдельной поездки на сервер для получения изображения? Это нужно для встраивания логотипов компании в подписи, прежде чем они покинут почтовый сервер. Мы не хотим использовать клиентское решение, такое как thunderbird или outlook, для добавления подписей.

спасибо

Ответы [ 7 ]

8 голосов
/ 08 февраля 2009

Стандартным решением для этого является добавление изображения в качестве вложения. Каждое вложение имеет ContentID, поэтому вы можете встроить изображение, используя: <img src="cid:ContentID" />.
Это будет встроить изображение в электронное письмо, а не в HTML.

8 голосов
/ 08 февраля 2009

Что вам нужно сделать, это закодировать файл в Base64 и включить его следующим образом:

<img src="data:image/gif;base64,R0lGODlhUAA..(the rest of your base64 encoded file)..">

http://www.sweeting.org/mark/blog/2005/07/12/base64-encoded-images-embedded-in-html

http://dean.edwards.name/weblog/2005/06/base64-ie/

5 голосов
/ 08 февраля 2009

Я не думаю, что спецификации W3C HTML действительно позволяют вам это делать.

Но если вы действительно хотите, вы можете создать таблицу шириной в пиксель по высоте в пикселях и установить цвета фона ячейки один за другим, чтобы создать свое изображение.

0 голосов
/ 22 июля 2010

Я недавно пересмотрел решения для этого.

Согласно этому блогу улучшена поддержка встроенных вложений, новые вещи были добавлены в основной репозиторий Rails.

Я не проверял, какая версия Rails достаточно удачна, чтобы вместить это изменение.

Для моих развертываний 2.3.x я использовал inline_attachment gem .

0 голосов
/ 08 февраля 2009

Вопрос, который приходит мне в голову: почему вы не хотите, чтобы тег normal <img> содержался в вашем html?

Прикрепление изображения к основному тексту HTML может показаться заманчивым, но это определенно замедлит время загрузки электронной почты, и некоторые люди используют такие вещи, как соединение gprs, поэтому они хотят ограничить свою пропускную способность.

ИМО с изображениями внутри Ваш HTML чистое зло . Но это просто из любопытства, спросить, почему вы хотите такое решение - кажется, @nickf alredy дал вам хорошее:)

0 голосов
/ 08 февраля 2009

Вот удобный конвертер изображений в HTML - предупреждение создает противный HTML! :)

0 голосов
/ 08 февраля 2009

Этого нельзя сделать, но это нормально, потому что современные браузеры используют функцию KeepAlive, так что соединение с сервером сохраняется для загрузки изображений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...