我正在使用 Laravel 5.3、EC2 和 SES 发送电子邮件。
配置/邮件.php
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
.env has
MAIL_DRIVER=ses
MAIL_HOST=email-smtp.us-west-2.amazonaws.com
MAIL_PORT=25
MAIL_ENCRYPTION=TLS
SES_KEY='AKIA------DZQ5TYQ'
SES_SECRET=AhN8d----------------ZbBq7TNBmhNnosfYbasg6Q
SES_REGION='us-west-2'
作曲家.json
"require": {
"aws/aws-sdk-php": "~3.0",
}
EC2 托管在孟买,SES 托管在 us-west。我已经尝试过以下操作:
1) 创建新的 IAM 用户并使用新的密钥/秘密。
2) 创建 root 用户密钥/秘密。
3)运行NTPDATE命令。
4) php artisan 缓存:清除,配置:清除,视图:清除,转储自动加载
5)我还在.env中使用了sparkpost,这也给出了错误403:forbidden。
我仍然看到以下错误:
[2017-05-26 06:02:00] local.ERROR: exception 'Aws\Ses\Exception\SesException' with message 'Error executing "SendRawEmail" on "https://email.us-west-2.amazonaws.com"; AWS HTTP error: Client error: `POST https://email.us-west-2.amazonaws.com` resulted in a `403 Forbidden` response:
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<Error>
<Type>Sender</Type>
<Code>SignatureDo (truncated...)
SignatureDoesNotMatch (client): The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.
完整错误在这里:https://pastebin.com/KSJinB1E