Laravel AWS SES 我们计算的请求签名与您提供的签名不匹配

问题描述 投票:0回答:1

我正在尝试通过 AWS SES API 从我的 Laravel 10 应用程序发送通知电子邮件。我遵循了 laravel 文档并按照它做了一切。

我的 AWS IAM 用户拥有 SesFullAccess。

以下是我在mail.php中的ses邮件程序配置

'ses' => [
    'transport' => 'ses',
    'version' => 'latest',
    'region'  => 'ap-southeast-1',
    'credentials' => [
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret'  => env('AWS_SECRET_ACCESS_KEY'),
    ],
    'signature_version' => 'v4'
],

我仍然收到 对 AWS SES API 的请求失败。原因:我们计算的请求签名与您提供的签名不匹配。检查您的 AWS 秘密访问密钥和签名方法。详情请参阅服务文档错误

当我将 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 用于 SMTP 时,它工作得非常好。但我想将它用于 SES API

我可能错过了什么?

amazon-web-services email amazon-ses laravel-10
1个回答
0
投票

“当我将 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 用于 SMTP 时,它工作得非常好”

您必须创建单独的 SMTP 特定 API 密钥才能使用 SES SMTP API。来自文档:

重要

您的 SMTP 凭证与您的 AWS 访问密钥或用于登录 Amazon SES 控制台的凭证不同。有关如何生成 SMTP 凭证的信息,请参阅获取 Amazon SES SMTP 凭证

如果您创建了用于发送 SMTP 电子邮件的密钥,则这些密钥“仅”适用于发送 SMTP 电子邮件,而无其他用途。您需要使用常规 API 密钥才能使用 SES API 发送电子邮件。

© www.soinside.com 2019 - 2024. All rights reserved.