如何从Google表格联系人列表批量生成Gmail草稿?
从Google表格批量生成Gmail草稿的实现方案
当然可以!其实这个需求很容易实现——你只需要把之前用MailApp.sendEmail()直接发送邮件的逻辑,替换成Gmail服务里创建草稿的方法就行。我给你一步步拆解,附上手写的代码示例:
1. 准备工作:打开脚本编辑器
首先打开你的Google表格,点击顶部菜单栏的「扩展」→「Apps脚本」,进入Google Apps Script的编辑器界面。如果你之前已经有发送邮件的脚本,直接在原有代码上修改就行。
2. 核心代码示例
假设你的表格结构是:
- A列:收件人邮箱
- B列:邮件主题
- C列:邮件内容(支持纯文本或HTML)
- D列:可选的Google云端硬盘附件链接
下面是完整的批量生成草稿的代码,注释已经写得很清楚:
function createGmailDraftsFromSheet() { // 获取当前表格的活动工作表 const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 读取表格数据,跳过第一行的表头 const sheetData = activeSheet.getDataRange().getValues().slice(1); // 遍历每一行数据,创建对应草稿 sheetData.forEach((row, index) => { const recipient = row[0]; const emailSubject = row[1]; const emailContent = row[2]; const attachmentUrl = row[3]; // 处理附件(如果有) let draftAttachments = []; if (attachmentUrl && attachmentUrl.includes('drive.google.com')) { // 从Google Drive链接中提取文件ID const fileId = attachmentUrl.split('/d/')[1].split('/')[0]; try { const targetFile = DriveApp.getFileById(fileId); draftAttachments.push(targetFile); } catch (e) { // 附件获取失败时,在表格标记错误 activeSheet.getRange(index + 2, 5).setValue('附件错误:' + e.message); return; // 跳过当前行的草稿创建 } } try { // 创建Gmail草稿,参数和MailApp.sendEmail()几乎一致 GmailApp.createDraft( recipient, emailSubject, '', // 纯文本内容,留空则优先使用HTML内容 { htmlBody: emailContent, // 如果你的内容是HTML格式,用这个参数 attachments: draftAttachments, // 可选:添加抄送、密送,对应表格E、F列的话可以写成row[4]、row[5] // cc: row[4], // bcc: row[5] } ); // 在表格E列标记创建成功状态 activeSheet.getRange(index + 2, 5).setValue('草稿已创建'); } catch (e) { // 创建失败时标记错误原因 activeSheet.getRange(index + 2, 5).setValue('创建失败:' + e.message); } }); // 全部完成后弹出提示 SpreadsheetApp.getUi().alert('批量草稿创建任务完成!请前往Gmail草稿箱查看。'); }
3. 关键细节说明
- 核心方法:
GmailApp.createDraft()是实现需求的关键,它的参数和你之前用的MailApp.sendEmail()高度兼容,学习成本很低 - HTML内容支持:如果你的邮件内容是HTML格式(比如带样式、图片),一定要把内容放在
htmlBody参数里,同时把第三个纯文本参数留空 - 权限授权:第一次运行脚本时,会提示需要授权访问你的Gmail、表格和Drive(如果用附件),这是Google官方的安全流程,直接按照提示完成授权即可
- 配额限制:Google对Gmail的操作有配额限制(比如每天最多创建5000封草稿),如果你的数据量很大,建议分批次运行脚本,避免触发限制
4. 运行脚本
在脚本编辑器里点击「运行」按钮,等待脚本执行完成,之后就可以打开Gmail的草稿箱,看到批量生成的邮件草稿了,你可以手动编辑或发送每一封。
内容的提问来源于stack exchange,提问作者Víctor Enrich
相关产品推荐
相关产品推荐

