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

如何在AppScript中添加文件附件并发送邮件?报错求助

修复Google Apps Script邮件附件发送错误

错误原因及修正点:

  • 文件ID格式错误:DriveApp.getFileById()仅接受纯文件ID,你当前使用的字符串包含了Drive文件URL的/edit后缀,必须去掉这部分。
  • 变量重复声明:重复定义了file变量,会导致逻辑冲突,需合并为一次声明。
  • 未定义收件人变量:代码中使用的recipientList未赋值,应替换为从表格B1单元格获取的address变量。
  • 冗余邮件发送调用:代码里调用了两次MailApp.sendEmail(),第一次无附件的调用属于多余操作,需删除。

修正后的完整代码:

function myFunction() {
  let sheet = SpreadsheetApp.getActiveSpreadsheet();
  let address = sheet.getRange("B1").getValue();
  let subject = sheet.getRange("B2").getValue();
  let body = sheet.getRange("B3").getValue();

  // 仅保留纯文件ID,去掉/edit后缀
  const fileId = "1J1MuYLLPYkviZ4M5Li8ZCLtiqJHQGJk_MzPMz1uVE6c";
  // 获取Drive文件对象
  const file = DriveApp.getFileById(fileId);

  // 发送带附件的邮件
  MailApp.sendEmail({
    to: address,
    subject: subject,
    body: body,
    attachments: [file.getAs(MimeType.PDF)] // 若需原文件格式,可替换为file
  });
}

额外说明:

  • 如果不需要将文件转为PDF格式,直接使用file作为附件参数即可,即attachments: [file]。
  • 确保当前脚本拥有访问该Drive文件的权限(文件需与脚本所有者共享,或脚本以所有者身份运行)。

内容的提问来源于stack exchange,提问作者Amir Rouzati

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:16:09