【问题标题】:Create HTML Draft from Google App script using GmailApp使用 GmailApp 从 Google App 脚本创建 HTML 草稿
【发布时间】:2021-04-08 05:33:10
【问题描述】:

我想创建一个谷歌应用脚​​本,通过从谷歌电子表格收集数据来获取带有签名的 Gmail 草稿。默认情况下,

function Loop_Email_Drafts() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var index = 2;
var lastRow = sheet.getLastRow();

for (;index <= lastRow; index++){
var emailAddress = sheet.getRange(index, 1, 1, 1).getValue();
var ccmail = sheet.getRange(index, 2, 1, 1).getValue();
var subject = sheet.getRange(index, 3, 1, 1).getValue();
var message = sheet.getRange(index, 4, 1, 1).getValue();


GmailApp.createDraft(emailAddress, subject, message, {cc: ccmail});


}// End of For Loop
}// End of Function

Google 应用脚本正在创建一个纯文本草稿,我无法从中添加我的签名(我的签名还包含一张图片)。

目前,我正在使用以下代码生成草稿但没有签名是没有价值的。

【问题讨论】:

    标签: google-apps-script google-sheets automation gmail spreadsheet


    【解决方案1】:

    使用htmlBody:

    如果你只是想在草稿中添加一个 HTML 正文,可以使用以下方法:

    其中options指的是可以包含一系列高级参数的对象,包括:

    • htmlBody:如果设置,能够呈现 HTML 的设备将使用它而不是所需的 body 参数;如果您的电子邮件有内联图像,则可以在 HTML 正文中添加可选的 inlineImages 字段
    • inlineImages:一个 JavaScript 对象,包含从图像键 (String) 到图像数据 (BlobSource) 的映射;这假定使用了 htmlBody 参数并包含对这些图像的引用,格式为

    也就是说,您在inlineImages 中定义您想要的图像,并使用相应的imageKey 将它们添加到您的HTML 中。以下是如何做到这一点的示例:

    const html = "<p>Whatever</p><img src=\"cid:yourImageKey\" />";
    const options = {
      htmlBody: html,
      inlineImages: {
        yourImageKey: YOUR_IMAGE_BLOBSOURCE
      }
    }
    GmailApp.createDraft(recipient, subject, '', options);
    

    更新:添加签名:

    您实际上可以通过 Gmail API manage signatures,因此使用 Apps 脚本(使用 Advanced Gmail Service)。

    要将您的实际签名添加到草稿中,您可以执行以下操作:

    const signature = Gmail.Users.Settings.SendAs
                          .get("me", "email_address_or_alias")
                          .signature;
    const html = "<div>YOUR_HTML_BODY</div><br>" + signature;
    const options = {
      htmlBody: html,
      cc: ccmail
    }
    GmailApp.createDraft(recipient, subject, '', options);
    

    【讨论】:

    • 谢谢@Iamblichus,你能帮帮我吗。我是 Google 应用脚本/JavaScript 的新手。你能指导我在我的谷歌应用脚​​本的 HTML 标签上写什么行来获得我的电子邮件草稿中的签名吗?我上面的谷歌脚本需要修改吗? PS:签名已保存在 Gmail 设置中。
    • @MehdiAbbas 我已经更新了我的答案,解释了如何在草稿中添加实际签名,让我知道这是否适合你:)
    • 您的代码运行良好,但我无法添加抄送电子邮件 ID。 GmailApp.createDraft(emailAddress, subject, '', options, {cc: ccmail});它给出错误异常:参数 (String,String,String,(class),(class)) 与 GmailApp.createDraft 的方法签名不匹配。 (第 79 行,文件“代码”)
    • @MehdiAbbas 您需要将cc: ccmail 添加为options 对象的字段,而不是提供另一个对象。我更新了我的代码 sn-p 显示。您会看到这是我引用的方法的可能高级参数之一。另外,请考虑accepting and upvoting这个答案,因为它解决了您的问题。
    • 非常感谢,现在可以使用了,1-如何投票和接受?
    猜你喜欢
    • 2021-04-23
    • 2014-09-11
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 2018-04-19
    • 1970-01-01
    相关资源
    最近更新 更多