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

营销自动化平台API传参至Google Apps Script发Gmail邮件失败求助

问题分析与解决方案

你的问题核心在于两点:

  • 当前Google Apps Script(GAS)仅处理GET请求,且sendMail函数的收件人、标题、内容都是硬编码固定值,完全未使用POST请求传递的参数。
  • 请求体的JSON格式存在语法错误,email字段的值未被引号包裹,不符合JSON规范。

修正步骤:

1. 更新Google Apps Script代码

替换原有代码为以下版本,新增doPost函数处理POST请求,解析传递的参数并动态发送邮件:

function sendMail(toEmail, subject, bodyContent) {
  // 使用传入的参数发送邮件
  GmailApp.sendEmail(toEmail, subject, bodyContent);
}

function doPost(e) {
  try {
    // 解析POST请求的JSON体
    const params = JSON.parse(e.postData.contents);
    
    // 调用sendMail,传入解析后的参数
    sendMail(params.email, params.title, params.body);
    
    // 返回成功响应
    return ContentService.createTextOutput(JSON.stringify({status: 'success', message: 'Email Sent!'}))
      .setMimeType(ContentService.MimeType.JSON);
  } catch (error) {
    // 返回错误信息便于排查
    return ContentService.createTextOutput(JSON.stringify({status: 'error', message: error.toString()}))
      .setMimeType(ContentService.MimeType.JSON);
  }
}

// 保留doGet用于快速测试(可选)
function doGet(){
  return ContentService.createTextOutput('Use POST request to send emails with parameters.');
}

2. 修正POST请求体格式

确保请求体是合法JSON,email字段的模板变量需要被双引号包裹:

{
    "title": "Welcome Dear {{user[\"system\"][\"firstName\"]}}",
    "email": "{{user[\"system\"][\"email\"]}}",
    "body": "We are happy to see you on board! :)"
}

3. 重新部署Google Apps Script

  • 打开GAS编辑器,点击右上角「部署」→「新部署」
  • 类型选择「Web应用」
  • 执行权限选择「我」(确保脚本能以你的身份发送邮件)
  • 谁可以访问选择「任何人,甚至匿名」(根据自动化平台权限调整,匿名设置更方便测试)
  • 点击「部署」,复制新的Web应用URL替换到自动化平台的API模块中。

测试验证

先用Postman发送POST请求测试,确认能动态接收参数并发送邮件后,再切换到自动化平台运行流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:15:50