gpt4 book ai didi

google-apps-script - 从现有草稿 [GmailApp] [Apps 脚本] 的 htmlBody 嵌入时,内联图像会中断

转载 作者:行者123 更新时间:2023-12-02 16:19:41 25 4
gpt4 key购买 nike

我正在编写一个邮件合并脚本,该脚本使用 GmailApp 获取邮件草稿,获取其 htmlBody 和附件,并使用它们发送新邮件。

它可以很好地处理附件,甚至可以处理从外部 url 插入的内联消息(包括 Gmail 签名中的图像);但是,它无法处理使用 Gmail 中的“插入图像”面板直接插入到草稿邮件中的内嵌图像:这些图像会损坏。

使用 getAttachments()includeInlineImages 选项只会改变所讨论的内联图像是否附加到电子邮件,但不管怎样,它在正文中被破坏了.

代码摘录:

var allAttachments = draft.getMessage().getAttachments()
var htmlBody = draft.getMessage().getBody()
GmailApp.sendEmail(recipient, subject, '', {
name:senderName,
from:senderEmail,
htmlBody:htmlBody,
cc:allCc,
bcc:bcc,
attachments: allAttachments

如有任何建议,我们将不胜感激。

最佳答案

当图像的来源或映射定义不正确时,就会出现损坏的图像。

如果您打印 htmlBody , 每个内联图像都有 cidcid用于映射Image。

示例:<div dir="ltr"><img data-surl="cid:xxsome_idxx" src="cid:xxsome_idxx" alt="dog.jpg" width="490" height="246"><br></div>

要解决此问题,您必须在 GmailApp.sendEmail 中设置 inlineImages 的值,并且 html 中的 cid 值应与 inlineImages 中的图像键匹配。参见示例:link

我创建了一个关于如何将草稿中的图像映射到新电子邮件的演示。

示例草稿:

Draft message

代码:

function getInlineImagefromDraft() {
var draft = GmailApp.getDrafts()[0];
var allAttachments = draft.getMessage().getAttachments();
var htmlBody = draft.getMessage().getBody();

var searchstring = "img data-surl=\"cid:";
//search string position
var index = htmlBody.search(searchstring);
if (index >= 0) {
////the goal of this section is to get the value of cid
var pos = index + searchstring.length
var id = htmlBody.substring(pos, pos + 15);
//remove double quotes
id = id.replace(/"/,"");
//remove characters after space
id = id.replace(/\s.*/g, "");

//send email
var recipient = 'someemail';
var subject = 'testing only gmail';
var senderName = 'testing name';
var senderEmail = 'someemail';
GmailApp.sendEmail(recipient, subject, '', {
name:senderName,
from:senderEmail,
htmlBody:htmlBody,
inlineImages: {[id]: allAttachments[0]}
});
}
}

输出: Output

引用:

sendEmail Advance Parameters

关于google-apps-script - 从现有草稿 [GmailApp] [Apps 脚本] 的 htmlBody 嵌入时,内联图像会中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65795503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com