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

GAS脚本执行GmailApp.sendEmail突然报Invalid argument: fileName错误求助

排查解决思路

报错指向fileName参数非法,按以下优先级排查即可:

  • 第一步排查PDF文件名合法性:你当前的PDF文件名取自C54单元格内容+后缀,首先检查C54单元格近期是否新增了以下非法字符:/ \ : * ? " < > |,或是存在空值、换行符、不可见控制字符。你可以在设置PDFsubject1的代码后加一行Logger.log('PDF文件名:' + PDFsubject1),手动触发一次脚本后查看执行日志,确认文件名是否符合预期。
  • 第二步验证PDF Blob是否生成正常:你可以临时添加一行测试代码DriveApp.createFile(blob1),注释掉发送邮件的代码后手动执行,如果这一步报错,说明是表格转PDF环节出了问题:要么是近期表格体积超出了转PDF的大小限制,要么是表格的权限设置变更导致脚本无法读取完整内容转码。
  • 第三步做兼容化修复:不管是不是非法字符的问题,都可以给文件名加一层非法字符过滤,避免后续单元格内容变动再次触发报错,修改设置PDFsubject1的代码为:
var rawFileName = srcSheet1.getRange('C54').getValue().toString();
// 替换所有文件名非法字符和控制字符为下划线
var cleanFileName = rawFileName.replace(/[\\/:*?"<>|\r\n\t\f\v]/g, '_');
var PDFsubject1 = cleanFileName + ".pdf";
blob1.setName(PDFsubject1);
  • 第四步排查权限变动:检查脚本的OAuth权限是否完整,打开脚本编辑器的「项目设置」,确认已添加以下作用域:
    • https://www.googleapis.com/auth/gmail.send(发送邮件权限)
    • https://www.googleapis.com/auth/drive.readonly(读取Drive文件转PDF权限)
      如果缺失对应权限,重新运行一次脚本,在授权弹窗里重新授予权限即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:30:05