google-apps-script - 图像作为附件发送,而不是通过应用程序脚本发送的电子邮件中的内联
问题描述
我将此代码用于富文本邮件合并,效果很好。
然后我修改它以将变量 {{imageBlob}} 添加到模板中,然后我将其替换为图像标记并使用 GmailApp.sendEmail 的选项功能将其作为内联图像包含在内
这在我第一次测试时效果很好。但是所有后续测试都会导致图像作为附件发送!
/*in function to set the template*/
template = template.replace(templateVars[i], "<img src='cid:imageKey' style='width:24px; height:16px;'/>");
/*in function to send email*/
var imageUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Flag_of_the_Netherlands.png/320px-Flag_of_the_Netherlands.png";
var imageBlob=UrlFetchApp
.fetch(imageUrl)
.getBlob()
.setName("imageBlob");
GmailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text,{
htmlBody: msgObj.html, cc:row[CC_COL], inlineImages:{imageKey: imageBlob}
});
解决方案
为了实现在草稿电子邮件中插入图像,我在模板表中使用了一个名为“image”的新列,我在其中放置了这一行:
<img src='cid:imageKey' style='width:24px; height:16px;'/>
在草稿电子邮件中,我使用{{image}}
了我想要替换图像的位置。
sendEmails 函数将与您拥有的相同,仅添加/替换以下行:
/*in function to send email*/
var imageUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Flag_of_the_Netherlands.png/320px-Flag_of_the_Netherlands.png";
var imageBlob=UrlFetchApp
.fetch(imageUrl)
.getBlob()
.setName("imageBlob");
GmailApp.sendEmail(row[RECIPIENT_COL], msgObj.subject, msgObj.text, {
htmlBody: msgObj.html, inlineImages:{imageKey: imageBlob}
});
推荐阅读
- javascript - 同一个函数用不同的参数调用了两次,但只执行了最后一次
- powershell - PowerShell DSC secedit.exe SecEdit.exe 区分大小写?
- z3 - 使用带有 Z3 的 SMT 约束时获取合法范围信息的(次)最佳方法
- cordova - YoutubeVideoPlayer 插件在 iOS 上不起作用
- ios - .play() 用于音频标签滞后于 iOS(可能还有其他移动设备)
- python - 删除熊猫框架中具有其他形状的行
- wordpress - 需要将所有子域从旧 URL 重定向到新 URL 上的子域
- json - 获取与键名匹配的所有值和嵌套值
- sql-server - EFCore:根据相关实体中某个字段的最大值查询相关实体
- html - 尝试通过相对路径链接我的 html 页面时出现问题