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

使用Strapi配置strapi-provider-email-gmail-2lo发邮件失败如何解决?

Strapi使用gmail-2lo插件发送邮件失败排查方案

1. 基础依赖与版本校验

  • 确认你的Strapi版本为v4,strapi-provider-email-gmail-2lo插件仅适配Strapi v4,v3版本无法兼容
  • 执行npm list strapi-provider-email-gmail-2lo检查插件是否安装成功,无返回版本信息则删除node_modules、package-lock.json后重新执行npm i strapi-provider-email-gmail-2lo安装

2. 配置文件正确性校验

  • 确认plugins.js文件存放路径为项目根目录下的/config/plugins.js,路径错误会导致配置不生效
  • 检查配置项是否完整无缺失:
    • provider字段需填写为gmail-2lo,拼写错误会导致插件无法被识别
    • providerOptions下必填的client_email(GCP服务账号邮箱)、private_key(服务账号私钥)、userId(发件人邮箱,为Google Workspace域内真实账号)是否填写正确
    • private_key需完整复制服务账号JSON文件中的私钥内容,包含头尾的-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----\n,不得遗漏转义字符\n或多余空格、引号
    • defaultFrom、defaultReplyTo需和userId为同域账号,否则会被Gmail接口拦截
  • 若使用.env存储敏感配置,检查环境变量名拼写是否正确,调用时是否添加process.env.前缀

3. Google端权限配置校验

注:该插件仅支持Google Workspace(原G Suite)企业域账号,个人Gmail账号无法使用2LO模式发信

  • 确认GCP控制台中已启用Gmail API,未启用的话会直接返回接口无权限报错
  • 确认GCP服务账号已开启「全域委托(Domain-wide Delegation)」权限,未开启则无法模拟域内用户发信
  • 确认Google Workspace管理后台已给该服务账号授权https://www.googleapis.com/auth/gmail.send权限,权限范围配置错误会导致发信被拒
  • 确认userId对应的邮箱是Google Workspace域内真实存在、状态正常的账号,不能直接填写服务账号邮箱

4. 调试排查

可以编写自定义测试接口直接调用邮件服务,获取更详细的报错信息:

// 示例测试接口代码
module.exports = {
  async testEmail(ctx) {
    try {
      await strapi.plugin('email').service('email').send({
        to: '接收邮箱地址',
        subject: '测试邮件',
        text: '这是一封测试邮件'
      });
      ctx.body = '邮件发送成功';
    } catch (err) {
      ctx.body = err;
      console.error('邮件发送报错详情:', err);
    }
  }
}

根据返回的报错信息定向排查:

  • 若返回授权相关错误,优先检查Google端的API启用、权限委托、scope配置
  • 若返回配置格式错误,优先检查plugins.js的配置项拼写、私钥完整性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:06:10