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

如何在Google Apps Script中通过MailApp发送附带生成的CSV文件的邮件

实现方案

你原有代码里的data:text/csv;charset=utf-8,前缀是浏览器端触发下载用的,在Google Apps Script中发送附件不需要这个前缀,先调整CSV生成逻辑,再调用MailApp接口即可实现需求。

步骤1:修正CSV内容生成代码

去掉多余的Data URI前缀,生成纯CSV文本内容:

let array = [["name1", 2, 3], ["name2", 4, 5], ["name3", 6, 7], ["name4", 8, 9], ["name5", 10, 11]];
let lineArray = []
array.forEach((fila, index) => {
     let filaComas = fila.join(',')
     lineArray.push(filaComas)
 })
let csvContent = lineArray.join("\n");

步骤2:调用MailApp发送带附件的邮件

GAS的MailApp.sendEmail()方法支持传入attachments参数配置附件,你可以直接把生成的CSV字符串封装为Blob对象作为附件传入,完整示例代码如下:

function sendEmailWithCsv() {
  // 生成CSV内容
  let array = [["name1", 2, 3], ["name2", 4, 5], ["name3", 6, 7], ["name4", 8, 9], ["name5", 10, 11]];
  let lineArray = []
  array.forEach((fila, index) => {
       let filaComas = fila.join(',')
       lineArray.push(filaComas)
   })
  let csvContent = lineArray.join("\n");

  // 将CSV字符串转为Blob对象,指定MIME类型和文件名
  const csvBlob = Utilities.newBlob(csvContent, 'text/csv', '数据统计表.csv');

  // 发送邮件
  MailApp.sendEmail({
    to: '收件人邮箱地址', // 替换为实际收件人邮箱
    subject: 'CSV数据邮件', // 自定义邮件主题
    body: '您好,附件是您需要的CSV数据文件,请查收。', // 自定义邮件正文
    attachments: [csvBlob] // 附件列表,支持传入多个附件
  })
}

注意事项

  • 如果你的CSV内容包含中文、特殊字符(比如逗号、引号、换行),需要先对每个单元格内容做转义处理,避免CSV格式错乱,简单的转义逻辑可以参考:把单元格内容用双引号包裹,内容里的双引号替换为两个双引号
  • 运行代码前需要按照IDE指引完成GAS项目的邮件发送权限授权
  • 附件文件名可以自定义,保留.csv后缀即可保证收件人可以直接识别为CSV文件下载打开

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:36:02