Можете ли вы добавить встроенное изображение в кодировке base64 в шаблон Mandrill?

Кто-нибудь знает, можно ли и как добавить изображение в кодировке Base64 в шаблон Mandrill.

Я использую шаблон Mandrill, чтобы убедиться, что все мои электронные письма имеют одинаковый внешний вид, и у меня есть простой и небольшой логотип, который я бы предпочел добавить в свой шаблон, следуя этим рекомендациям: http://help.mandrill.com/entries/25252978-СоветыпоиспользованиюизображенийвэлектроннойпочтеMandrill

Однако я не уверен, где и как добавить необходимый код в мой HTML-шаблон. У кого-нибудь есть идея, если это возможно и как это сделать?

Спасибо


person Fjalestad    schedule 03.11.2014    source источник


Ответы (4)


Я, наверное, нашел ответ на свои вопросы.

НЕТ. Mandrill не позволяет добавлять встроенное изображение или загружать вложенное изображение в виде кода в шаблон.

РЕШЕНИЕ - вам нужно добавить массив [images] в сообщение $, как это предлагается в API.

Вот пример функции PHP для этого:

// Add cid image to $message
function add_email_logo($message) {
  $logo = array (
    'images' => array (
      array (
              'type' => 'image/png',
              'name' => 'logo',
              'content' => 'iVBORw0KGgoAAAANSUhEUgAA....etc.'
      )
    )
  );

  return array_merge( $message, $logo);
}

и используйте изображение src="cid:{name}"

<img src="cid:logo"/>

person Fjalestad    schedule 03.11.2014
comment
Привет, я включил ‹img src=cid:logo› в свой HTML-шаблон, но когда я проверил отправленное электронное письмо в исходящей активности мандрила, я обнаружил, что данные изображения не были прикреплены должным образом. Вместо этого он просто показывает простой текст '‹img src=cid:logo›' в html. Есть идеи? Заранее спасибо. - person Junlynn; 16.11.2015

В середине страницы, на которую вы ссылаетесь, говорится, что вы можете использовать тег img с изображениями в кодировке base64.

Включите изображения в качестве встроенных вложений в вызовы API, используя параметр images. Вам потребуется указать имя изображения (Content-ID), содержимое (в виде строки в кодировке base64) и тип MIME изображения. Ссылайтесь на имя изображения в «src» в вашем HTML-содержимом:

<img src="cid:image_name">

Атрибут src использует схему URI данных. Общий формат

<img src="data:(MIME TYPE);base64,(IMAGEDATA BASE 64 ENCODED)">

Вот список изображений типов мультимедиа.

image/gif
image/jpeg
image/pjpeg
image/png
image/svg+xml
image/vnd.djvy
image/example

Самый простой способ получить изображение в кодировке base64 уже в виде тега html — использовать онлайн-конвертер. Погуглив изображение в кодировке base64, вы получите множество результаты, обладающие этой способностью.

person Community    schedule 03.11.2014
comment
да, но... Mandrill/Gmail не любит встроенную версию. Любые другие идеи? - person Fjalestad; 04.11.2014
comment
Поддержка использования code‹img src=data:[mime];base64;[base64data]›code для почтовых клиентов очень плохая. Вы не будете отображаться в Gmail, Yahoo или современных версиях Outlook. Если по какой-то причине вы должны встроить, используйте code‹img src=cid:imagename›code. Вот некоторые статистические данные о поддержке почтовыми клиентами встроенных изображений без использования cid: строка. Тесты были проведены в 2013 году, но эти результаты все еще действительны для самых последних версий этих клиентов в 2015 году. - person Aaron; 27.06.2015

В примере с мандрилом

<img src="cid:image_name">

Следует заменить на

<img src="cid:image_name" />

В противном случае изображение будет просто прикреплено к письму, а не показано внутри

person Mookker    schedule 21.04.2016

Также очень важно отметить, что свойство images[].content & attachments[].content должно быть строкой base64 без какой-либо конструкции data:(MIME TYPE);base64, в начале, просто строкой

person styleofspur    schedule 20.11.2020