Mandrill 嵌入图像无法正确解释
Posted
技术标签:
【中文标题】Mandrill 嵌入图像无法正确解释【英文标题】:Mandrill embed image cannot get interpreted properly 【发布时间】:2016-02-17 05:46:34 【问题描述】:我在 Nodejs 中使用 Mandrill 向客户发送电子邮件,并希望在我的电子邮件附件的 html 内容中嵌入图像。我从https://mandrill.zendesk.com/hc/en-us/articles/205582457-Tips-for-using-images-in-Mandrill-emails 找到了一些解决方案,并决定使用第 4 个解决方案,其中包括 html 中内联的图像。代码如下:
var message =
html: htmlContent,
subject: "Subject",
...
images = [
"type": logo.logoType, // which is "image/jpeg"
"name": "logo",
"content": content // the content is valid when using in <img src="data:image/jpeg;base64,content"> directly
]
;
mandrillClient.messages.send(
message: message
, function()
callback(null);
, function(err)
callback(err);
)
而htmlContent中对应的html代码是
<img src="cid:logo">
但是,当我在 Mandrill 出站活动中检查已发送的电子邮件时,“查看内容”无法正确显示图像。而且我查看了html源码,发现图片代码还是那样
<img src="cid:logo">
纯文本没有被图像数据替换。
我怎样才能让它正常工作?有什么想法吗?
提前致谢。
【问题讨论】:
【参考方案1】:最后,我发现它在 Mandrill Outbound Activity 中检查已发送电子邮件时不起作用,但在您的实际电子邮件收件箱中却可以正常工作。所以这意味着你在做测试时永远看不到嵌入的图像,你必须使用生产 API 密钥发送它,并在真实的电子邮件收件箱中看到结果。
仅供参考。希望没有人会像我一样在这件事上浪费时间。 :)
【讨论】:
您好,Junlynn,通过在 html 内容中仅提及带有 cid 的图像名称,例如<img src="cid:logo">
以及内容中图像名称的 base64 编码,它如何知道图像的托管位置。我们是否应该将完整的 url 路径编码为 base64..?
您需要在每个图像实体的“内容”字段中提供图像内容。所以它不需要知道它的托管位置。以上是关于Mandrill 嵌入图像无法正确解释的主要内容,如果未能解决你的问题,请参考以下文章
Mandrill Handlebar 模板无法正确渲染/与 Parse.com 对象合并
在 iOS 中使用 Mandrill API 的电子邮件无法正常使用图像附件
无法使用 Parse Cloud Code 和 Mandrill 发送电子邮件