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

PHP cURL调用SendGrid API遇授权无效错误,求排查方向

SendGrid API授权错误排查方案

一、立即修正代码中的明显错误

  1. Authorization头格式错误
    你的Authorization头里,Bearer后有大量冗余空格,还包含了多余的{}。SendGrid API密钥不需要包裹大括号,且Bearer与密钥之间仅需一个空格。修正后示例:

    'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    
  2. 请求体不符合v3 API规范
    SendGrid v3的邮件请求体结构与你当前写法完全不符,错误格式可能触发服务器返回非预期的授权类错误。正确结构需包含personalizations、from、content等字段,修正示例:

    $email = [
        'personalizations' => [
            [
                'to' => [
                    ['email' => "myemail@server.com", 'name' => "Example User"]
                ]
            ]
        ],
        'from' => [
            'email' => "sendingemail@otherserver.com",
            'name' => "Your Name"
        ],
        'subject' => "PHP Test",
        'content' => [
            ['type' => 'text/plain', 'value' => "I'm text!"],
            ['type' => 'text/html', 'value' => "<strong>I'm HTML!</strong>"]
        ]
    ];
    

二、API密钥相关排查

  • 确认密钥生成权限:在SendGrid控制台生成密钥时,需至少勾选Mail Send权限,或临时使用全权限密钥测试,排除权限不足问题。
  • 检查密钥完整性:复制密钥时避免带入首尾空格、换行符,直接从控制台复制粘贴到代码。
  • 确认密钥状态:在SendGrid的API密钥管理页面,查看对应密钥是否处于启用状态,未被手动撤销。

三、账号与发件人验证排查

  • 检查账号状态:确认SendGrid账号未因发送违规内容、发送量超限等被限制。
  • 验证发件人:发件邮箱必须完成验证,要么通过域名验证(配置DKIM/SPF),要么验证单个发件人邮箱,未验证的发件人会导致请求失败,可能伴随授权类错误提示。

四、网络与SSL设置排查

  • 移除CURLOPT_SSL_VERIFYHOST和CURLOPT_SSL_VERIFYPEER的禁用配置,关闭这两个选项存在安全风险,且部分环境下会导致请求被拦截或服务器拒绝,建议让cURL正常验证SSL证书。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 09:00:28