我有一个简单的 MailApp 来发送 HTML 格式的文本。我的小问题是:如何在该文本中插入内嵌图像?例如,我想为荷兰语文本添加荷兰国旗,为法语内容添加法国国旗。
我认为只使用 HTML 代码就可以完成这项工作。但可惜的是,没有这样的运气。这只是我需要的一个小图像,内容下方没有大图像。我怎样才能做到这一点?
MailApp.sendEmail(mailaddress, subject, "" ,
{ htmlBody: bodyNL + bodyFR })
的文档sendEmail(message) https://developers.google.com/apps-script/reference/mail/mail-app#sendemailmessage演示如何将两个徽标作为内嵌图像添加到电子邮件中。
这是对 Google 示例的改编,它将在文本块前面添加区域设置标志。它使用来自维基媒体的图像,这些图像在知识共享下免费许可。
其工作原理的关键是:
- HTML
<img>
电子邮件正文中的标签的使用src='cid:[name]'
参考附图。这些都是内容ID通用资源定位器,引用多部分电子邮件的各个部分。
- 您可以使用内联
style
on the <img>
标签告诉邮件客户端如何显示它们。例如,我们缩放了所附图像。 (注意:使用所需尺寸的自定义图像会减少浪费。)
-
当电子邮件被编码以供发送时,每个附加图像将单独存在part,标记为cid
你已经在inlineImages
目的。该对象是高级参数对象的一部分sendMail()
method.
在这里,我们有两个cid
s, nlFlag
and frFlag
,每个与一个相关联file Blob https://developers.google.com/apps-script/reference/base/blob.
inlineImages:
{
nlFlag: nlFlagBlob,
frFlag: frFlagBlob
}
文件 blob 可以通过多种方式获取;这里我们用过UrlFetchApp.fetch()
从 WikiMedia 获取二进制图像,然后将它们转换为 blob 并设置用于附加的 blob 的名称。
Code:
/**
* Example of sending an HTML email message with inline images.
* From: http://stackoverflow.com/a/37688529/1677912
*/
function sendInlineImages() {
var mailaddress = Session.getActiveUser().getEmail();
var subject = "test inline images";
var bodyNL = "This is <B>DUTCH</B> text.";
var bodyFR = "This is <B>FRENCH</B> text.";
// Image URLs, under CC license
var nlFlagUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Flag_of_the_Netherlands.png/320px-Flag_of_the_Netherlands.png";
var frFlagUrl = "https://upload.wikimedia.org/wikipedia/en/thumb/c/c3/Flag_of_France.svg/320px-Flag_of_France.svg.png";
// Fetch images as blobs, set names for attachments
var nlFlagBlob = UrlFetchApp
.fetch(nlFlagUrl)
.getBlob()
.setName("nlFlagBlob");
var frFlagBlob = UrlFetchApp
.fetch(frFlagUrl)
.getBlob()
.setName("frFlagBlob");
// Prepend embeded image tags for email
bodyNL = "<img src='cid:nlFlag' style='width:24px; height:16px;'/>" + bodyNL;
bodyFR = "<img src='cid:frFlag' style='width:24px; height:16px;'/>" + bodyFR;
// Send message with inlineImages object, matching embedded tags.
MailApp.sendEmail(mailaddress, subject, "",
{ htmlBody: bodyNL + "<BR/><BR/>" + bodyFR,
inlineImages:
{
nlFlag: nlFlagBlob,
frFlag: frFlagBlob
}
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)