You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Apps Script实现新建Google Docs文档自动发送邮件

问题排查与修复

现有代码存在两处核心错误:

  • DriveApp.getFileById() 未传入目标文件ID参数,运行时会直接抛出参数缺失异常
  • 未将新生成的文档ID写入邮件正文,不符合随邮件发送文档ID的需求

修复后完整代码

var templateFile = DriveApp.getFileById("1baIoahNT9YJ84mnUcp1pyWR0U5v235z29vPCkiv4rIc");
var templateResponseFolder = DriveApp.getFolderById("1mmFKjNnbTy2k8ZWobtcvdtIcwyse3NVd");
var copy = templateFile.makeCopy(deptName + " " + "Cost Recovery Agreement", templateResponseFolder);
// 复制生成后可直接获取ID,无需后续重复读取
var newDocId = copy.getId();
var doc = DocumentApp.openById(newDocId);
var body = doc.getBody();
body.replaceText("{{DeptName}}", deptName);
body.replaceText("{{DeptCo}}", deptCo);
body.replaceText("{{FirstName}}", firstName);
body.replaceText("{{LastName}}", lastName);
doc.saveAndClose();

var subject = "Welcome to ResponseMaster!";
// 把新生成的文档ID拼入邮件正文,如需附带文档访问链接,拼接官方访问前缀与newDocId即可
var message = title + " " + lastName + "," + "\n\n" + "Thank you for choosing ResponseMaster as your dedicated software for your fire department." + "\n\n" + "新生成的协议文档ID为:" + newDocId;
// 直接传入新生成的文档ID获取文件作为附件
var costRecoveryForm = DriveApp.getFileById(newDocId);
MailApp.sendEmail(userEmail, subject, message, { attachments: [costRecoveryForm] });

补充说明

如果不需要附件仅发送文档ID,可删除获取文件、配置附件的相关代码,运行效率更高。

内容的提问来源于stack exchange,提问作者Kayne Parrish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:24:04