你可以将内联base64编码的图像添加到Mandrill模板吗?

时间:2014-11-03 20:27:12

标签: html email mandrill

有没有人知道是否以及如何将Base64编码的图像添加到Mandrill模板。

我使用Mandrill模板确保我的所有电子邮件都具有相同的外观和感觉,我有一个简单的小徽标,我希望根据这些建议添加到我的模板中: http://help.mandrill.com/entries/25252978-Tips-for-using-images-in-Mandrill-emails

但是我不确定在我的HTML模板中添加必要代码的位置和方法。任何人都知道是否有可能以及如何做到这一点?

THX

4 个答案:

答案 0 :(得分:10)

我可能已经找到了自己问题的答案。

否 - Mandrill不允许您添加内嵌图像或将图像附件作为代码上载到模板。

解决方案 - 你需要按照API中的建议将数组[images]添加到$ message中。

这是一个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"/>

答案 1 :(得分:0)

在页面中间,您链接到它会告诉您可以使用带有base64编码图像的img标记

  

使用您的API调用将图像作为内联附件包含在内   图像参数。您需要提供图片名称(Content-ID),   内容(作为base64编码的字符串)和图像MIME类型。   在&#39; src&#39;中引用图片名称。在您的HTML内容中:

<img src="cid:image_name">

src属性正在使用Data URI scheme。一般格式是

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

图片列表media types

  

图像/ GIF
  图像/ JPEG
  图像/ PJPEG
  图像/ PNG
  图像/ SVG + xml的
  图像/ vnd.djvy
  图像/示例

以html标签形式获取base64编码图像的最简单方法是在线使用转换器。谷歌搜索base64 encode image提供了大量具有此功能的结果。

答案 2 :(得分:0)

在Mandril示例中

<img src="cid:image_name">

应替换为

<img src="cid:image_name" />

否则,图像将仅附加到邮件中,而不会显示在

答案 3 :(得分:0)

请务必注意,images[].contentattachments[].content属性必须是 base64字符串,开头没有任何data:(MIME TYPE);base64,结构,只是一个字符串