我在我的laravel 5.7应用程序(admin.my-app.com)中维护了以下aws配置。
我的.env
MAIL_MAILER=ses
SES_KEY=aws_key_here
SES_KEY_SECRET=aws_secret_key_here
SES_REGION=us-east-1
MAIL_FROM[email protected]
MAIL_FROM_NAME="${APP_NAME}"
字符串
我的邮箱/mail. php
<?php
return [
'default' => env('MAIL_MAILER', 'smtp'),
//other configs
型
我的博客/services. php
<?php
return [
'ses' => [
'key' => env('SES_KEY'),
'secret' => env('SES_KEY_SECRET'),
'region' => env('SES_REGION', 'us-east-1'),
],
//other configs
型
用于触发电子邮件发送的代码
public function approveKyc(Request $request, $userId)
{
$model = User::on('mysql2')->find($userId);
$this->actionKyc($userId, 'is_verified');
$model->notify(new KycApproved());
return response()->json([
'name' => 'New KYC Docs',
'status' => 'Approved'
]);
}
型
我还检查了 composer 文件**“aws/aws-sdk-php”:“^3.86”,**已安装。
上面的代码我得到错误消息
例外:“Swift_TransportException”文件:“/var/www/my-app/vendor/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php”行:460消息:“预期响应代码为354,但得到代码“503”,消息“503 RCPT命令预期\r\n”
我测试了发送电子邮件与mailtrap它的工作正常。此外,我使用smtp设置从cpanel帐户,它也工作(电子邮件发送成功)。
使用aws并不是发送电子邮件。
我也在另一个laravel 10的应用程序中使用了上面的aws配置(api.myapp.com),它在那里工作得很好。
有谁能帮我弄清楚我在这里错过了什么?
1条答案
按热度按时间kmpatx3s1#
AWS SES有一个“沙盒”模式,该模式有几个限制。由于这些限制,您只能将邮件发送到经过验证的电子邮件地址或域,或者发送到Amazon SES邮箱模拟器。但是,如果您在沙盒模式下尝试发送到未经验证的电子邮件地址,SES将拒绝发送请求。您应该在生产中使用它之前获得AWS团队的批准。