如何使用Apps Script创建JSON文件并将其发送至指定邮箱?
Apps Script生成JSON并发送邮件实现
你现有代码已经完成JSON数据组装,补全附件构造、邮件发送逻辑即可,完整可运行代码如下:
function sendJsonByEmail() { // 原有数据组装逻辑 var objeto = {update:[]}; var product = []; for (let i = 0; i < 3; i++){ product.push({ id: i+1, name: "prueba" }) } objeto.product = product; // 序列化时增加缩进参数,生成的JSON可读性更好 const jsonContent = JSON.stringify(objeto, null, 2); Logger.log(jsonContent); // 可选:如需把JSON文件留存到Drive,放开下方注释即可 // const driveFile = DriveApp.createFile('产品数据.json', jsonContent, MimeType.JSON ); // 构造邮件附件 const jsonBlob = Utilities.newBlob(jsonContent, MimeType.JSON, '产品数据.json'); // 配置邮件参数并发送 const recipient = "指定收件人邮箱@example.com"; // 替换为实际收件人邮箱 const subject = "自动生成的产品数据JSON文件"; const body = "您好,附件为自动生成的产品数据JSON文件,请查收。"; MailApp.sendEmail({ to: recipient, subject: subject, body: body, attachments: [jsonBlob] // 如果启用了Drive存文件逻辑,可直接传入Drive文件对象作为附件:attachments: [driveFile] }); }
关键说明
- 不需要强制在Drive创建文件就能发送附件:直接通过
Utilities.newBlob()把序列化后的JSON字符串封装为指定MIME类型、指定文件名的Blob对象,就可以直接作为邮件附件传入,不会在Drive产生冗余文件。 - 如果需要在Drive留存JSON备份,放开
DriveApp.createFile()的注释即可,创建完成的文件对象可以直接作为附件传入,不需要额外格式转换。 - 首次运行脚本时会弹出权限申请窗口,按提示同意邮件发送、Drive访问(如果启用了Drive存文件逻辑)的相关权限即可正常运行。
内容的提问来源于stack exchange,提问作者Ona Mañer Pardina
相关产品推荐
相关产品推荐

