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

使用Google Apps Script+OnedriveApp发送Outlook邮件报错求助

解决Google Apps Script发送Outlook邮件的错误问题

1. 修正收件人数组格式错误

你的代码中to、cc、bcc数组存在多余逗号,导致数组包含undefined元素,触发请求格式错误。修改后去掉冗余逗号:

const obj = [
  {
    to: [{ name: "### name ###", email: "### email address ###" }],
    subject: "sample subject 1",
    body: "sample text body",
    cc: [{ name: "name1", email: "emailaddress1" }],
  },
  {
    to: [{ name: "### name ###", email: "### email address ###" }],
    subject: "sample subject 2",
    htmlBody: "<u><b>sample html body</b></u>",
    bcc: [{ name: "name1", email: "emailaddress1" }],
  },
];

2. 验证Azure应用的API权限

确保Azure注册的应用已配置正确权限:

  • 进入Azure门户的应用注册页面,打开「API权限」
  • 添加Microsoft Graph的Mail.Send权限:若用委托令牌选Delegated类型,若用应用级令牌选Application类型,应用权限需管理员同意
  • 确认权限已完成授予流程(委托权限需用户登录授权,应用权限需管理员审批)

3. 检查Access Token的Scope

获取令牌时必须包含https://graph.microsoft.com/Mail.Send权限范围,否则无邮件发送权限。确认使用工具获取令牌时的scope配置包含该项。

4. 确认凭据配置正确性

检查PropertiesService中存储的Azure应用凭据(客户端ID、客户端密钥、刷新令牌等)是否正确,无拼写错误或过期情况。若刷新令牌过期,需重新授权获取新令牌。

5. 简化测试单个邮件请求

先发送单封邮件排查批量请求问题:

function testSingleMail() {
  const singleObj = {
    to: [{ name: "测试用户", email: "test@example.com" }],
    subject: "测试邮件",
    body: "测试内容"
  };
  const prop = PropertiesService.getScriptProperties();
  const odapp = OnedriveApp.init(prop);
  const res = odapp.sendEmails([singleObj]);
  console.log(res);
}

内容的提问来源于stack exchange,提问作者Halit Şahin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:26:05