您可以将内联 Base64 编码图像添加到 Mandrill 模板吗?

问题描述 投票:0回答:4

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

我使用 Mandrill 模板来确保我的所有电子邮件都具有相同的外观和感觉,并且我有一个简单而小的徽标,我更愿意按照以下建议将其添加到我的模板中: http://help.mandrill.com/entries/25252978-Tips-for-using-images-in-Mandrill-emails

但是我不确定在 HTML 模板中的位置以及如何添加必要的代码。有人知道是否可能以及如何做到吗?

谢谢

html email mandrill
4个回答
14
投票

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

否 - 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"/>

0
投票

在您链接到的页面中间,它告诉您可以将

img
标签与 base64 编码图像一起使用

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

<img src="cid:image_name">

src
属性使用Data URI 方案。一般格式为

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

这是图像列表媒体类型

图像/gif
图片/jpeg
图片/pjpeg
图片/png
图像/svg+xml
图片/vnd.djvy
图片/示例

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


0
投票

以 Mandril 为例

<img src="cid:image_name">

应替换为

<img src="cid:image_name" />

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


0
投票

还需要注意的是,

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

© www.soinside.com 2019 - 2024. All rights reserved.