我正在尝试通过 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
我可能错过了什么?
“当我将 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 发送电子邮件。