2014-11-03 116 views
4

有誰知道是否以及如何將一個Base64編碼圖像添加到Mandrill模板。您可以將內聯base64編碼圖像添加到Mandrill模板嗎?

我用一個山魈模板,以確保我所有的電子郵件具有相同的外觀和感覺,我有一個簡單的小標誌,我寧願在模板中添加以下建議: http://help.mandrill.com/entries/25252978-Tips-for-using-images-in-Mandrill-emails

然而我不確定在哪裏以及如何在我的HTML模板中添加必要的代碼。任何人都有一個想法,如果有可能和如何做到這一點?

THX

回答

0

在頁面中間你鏈接到它會告訴你,你可以使用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的
image/vnd.djvy
image/example

以html標記形式獲取base64編碼圖像的最惡劣方式是在線使用轉換器。谷歌搜索base64 encode image yeild大量的結果有這種能力。

+1

是所示,但是......山魈/ Gmail不喜歡在線版本。任何其他想法? – Fjalestad 2014-11-03 21:10:00

+0

支持使用'代碼''代碼'。 以下是一些關於電子郵件客戶端支持內聯圖像而不使用cid的統計信息:[line](https://www.campaignmonitor.com/blog/post/3927/embedded-images-in-html-email)。在2013年進行了跑步測試,但這些結果仍然適用於2015年這些客戶端的最新版本。 – Aaron 2015-06-27 03:30:47

9

我可能已經找到了我自己的問題的答案。

否 - Mandrill不允許添加內聯圖像或將圖像附件作爲代碼上載到模板。

解決方案 - 您需要按照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:{名稱}」

<img src="cid:logo"/>

+1

嗨,我在我的html模板中包含,但是當我在mandrill出站活動中檢查發送的電子郵件時,發現圖像數據沒有正確附加。相反,它只是在html中顯示''純文本。任何想法?提前致謝。 – Junlynn 2015-11-16 03:43:02

0

在曼德里爾示例

<img src="cid:image_name"> 

應與

<img src="cid:image_name" /> 

否則被替換,圖像只會被附加到郵件,而不是內部

相關問題