gpt4 book ai didi

javascript - 将 Google 云端硬盘中的图片添加到 html 电子邮件正文

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

是否可以将 google 磁盘中的 png/gif 文件添加到 google 脚本生成的电子邮件 htmlbody 中?我的代码如下,文档已公开共享,Drive API 和 Gmail API 已启用。这是从磁盘共享文件的问题还是我的代码中的错误,请帮忙

function sendaEmail(){
var templ = HtmlService
.createTemplateFromFile('template');

var message = templ.evaluate().getContent();

MailApp.sendEmail({
to: 'email@gmail.com',
subject: "subject",
htmlBody: message
});
}
<!DOCTYPE XHTML 1.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body style="margin: 0; padding: 0;">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;">
<tr>
<td align="center" bgcolor="#70bbd9" style="padding: 40px 0 30px 0;">
<img src= <?= DriveApp.getFileById("1tKxUgeX_B27vnpNNpKy1jF_0zOxrBhmL").getAs("image/gif");?> alt="Creating Email" width="300" height="230" style="display: block;" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

最佳答案

首先,您应该调用 getUrl(),而不是 getAs(),getAs() 方法返回一个二进制对象而不是 Url,因为您应该在 HTML 标记的 src 属性上添加 URL。

但是,无论如何,如果您尝试一下,它不会专门与 Google Drive 链接一起使用,因为 DriveApp 网址不是规范的网址,并且不适合附加在 gmail 服务上。

那么,我们如何在驱动器中的电子邮件上附加内嵌图像?

最简单的方法如下:

function sendaEmail(){
var templ = HtmlService
.createTemplateFromFile('template');

var message = templ.evaluate().getContent();

var imageId = DriveApp.getFileById("YOURIMAGEID");
var imageBlob = imageId.getBlob();

MailApp.sendEmail('your@email.com', "Subject", "Hi", {htmlBody: message, inlineImages: {image: imageBlob}});

}

所以,你在这里所做的是直接附加图像对象,JS 会处理这个,如何处理?首先我们要修改 HTML 模板:

<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;">
<tr>
<td align="center" bgcolor="#70bbd9" style="padding: 40px 0 30px 0;">
<img src= "cid:image" alt="Creating Email" width="300" height="230" style="display: block;" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

这样就可以了,还有其他方法,但这相当简单。

在这里您可以找到有关在电子邮件中嵌入图像的几种方法的一些信息: https://blog.mailtrap.io/embedding-images-in-html-email-have-the-rules-changed/

如果您需要添加更多图像,请按以下步骤操作:

  var imageId2 = DriveApp.getFileById("15FhCLXu6bQE70iNRCXVAve0TyyoeoUTA");
var imageBlob2 = imageId2.getBlob();
MailApp.sendEmail('your@email.com', "Subject", "Hi", {htmlBody: message, inlineImages: {image: imageBlob, image2: imageBlob2}});

现在在 html 上添加另一个标签

    <img src= "cid:image2" alt="Creating Email" style="display: block;" />

关于javascript - 将 Google 云端硬盘中的图片添加到 html 电子邮件正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58767249/

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