【问题标题】:Can you add inline base64 encoded image to a Mandrill template?您可以将内联 base64 编码图像添加到 Mandrill 模板吗?
【发布时间】:2014-12-30 14:27:48
【问题描述】:

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

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

但是我不确定在我的 HTML 模板中的何处以及如何添加必要的代码。任何人都知道它是否可能以及如何做?

谢谢

【问题讨论】:

    标签: html email mandrill


    【解决方案1】:

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

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

    【讨论】:

    • 嗨,我在我的 html 模板中包含了 ,但是当我在 mandrill 出站活动中检查发送的电子邮件时,我发现图像数据没有正确附加.相反,它只是在 html 中显示 '' 纯文本。任何想法?提前致谢。
    【解决方案2】:

    在您链接到的页面中间告诉您可以将img 标记与base64 编码图像一起使用

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

    <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 会产生大量具有此功能的结果。

    【讨论】:

    • 是的,但是... Mandrill / Gmail 不喜欢内联版本。还有其他想法吗?
    • 对电子邮件客户端使用codecode 的支持很差。你不会在 gmail 上显示,雅虎,或现代版本的 Outlook。如果由于某种原因必须内联,请使用 codecode。以下是电子邮件客户端支持在不使用 cid 的情况下内联图像的一些统计信息:line . 2013 年的运行测试,但这些结果对于 2015 年这些客户端的最新版本仍然有效。
    【解决方案3】:

    以 Mandril 为例

    <img src="cid:image_name">
    

    应该替换为

    <img src="cid:image_name" />
    

    否则,图片只会附加到邮件中,不会显示在邮件中

    【讨论】:

      【解决方案4】:

      还有很重要的一点要注意images[].content&attachments[].content属性必须是开头没有任何data:(MIME TYPE);base64,构造的base64字符串,只是一个字符串

      【讨论】:

        猜你喜欢
        • 2013-07-22
        • 2012-06-16
        • 1970-01-01
        • 2013-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-11
        • 1970-01-01
        相关资源
        最近更新 更多