使用 GmailApp 从 Google 应用脚本创建 HTML 草稿
Create HTML Draft from Google App script using GmailApp
我想创建一个 Google 应用程序脚本,通过从 google 电子表格收集数据来获取带有签名的 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 应用程序脚本正在创建纯文本草稿,我无法从中添加我的签名(我的签名还包含图像)。
目前,我正在使用下面的代码生成草稿,但没有签名是没有价值的。
使用 htmlBody:
如果只是想在草稿中添加HTML正文,可以使用以下方法:
其中options
指的是可以包含一系列高级参数的对象,包括:
- htmlBody: if set, devices capable of rendering HTML will use it instead of the required body argument; you can add an optional inlineImages field in HTML body if you have inlined images for your email
- inlineImages: a JavaScript object containing a mapping from image key (
String
) to image data (BlobSource); this assumes that the htmlBody
parameter is used and contains references to these images in the format <img src="cid:imageKey" />
也就是说,你在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);
更新:添加签名:
其实你可以manage signatures via Gmail API, and therefore with Apps Script (using the Advanced Gmail Service).
为了将您的实际签名添加到您的草稿中,您可以执行以下操作:
- Enable the Advanced Gmail Service.
- 使用 users.settings.sendAs.get 检索您的签名。
- 将此签名添加到您的
htmlBody
。
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);
我想创建一个 Google 应用程序脚本,通过从 google 电子表格收集数据来获取带有签名的 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 应用程序脚本正在创建纯文本草稿,我无法从中添加我的签名(我的签名还包含图像)。
目前,我正在使用下面的代码生成草稿,但没有签名是没有价值的。
使用 htmlBody:
如果只是想在草稿中添加HTML正文,可以使用以下方法:
其中options
指的是可以包含一系列高级参数的对象,包括:
- htmlBody: if set, devices capable of rendering HTML will use it instead of the required body argument; you can add an optional inlineImages field in HTML body if you have inlined images for your email
- inlineImages: a JavaScript object containing a mapping from image key (
String
) to image data (BlobSource); this assumes that thehtmlBody
parameter is used and contains references to these images in the format <img src="cid:imageKey" />
也就是说,你在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);
更新:添加签名:
其实你可以manage signatures via Gmail API, and therefore with Apps Script (using the Advanced Gmail Service).
为了将您的实际签名添加到您的草稿中,您可以执行以下操作:
- Enable the Advanced Gmail Service.
- 使用 users.settings.sendAs.get 检索您的签名。
- 将此签名添加到您的
htmlBody
。
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);