Laravel使用AWS SES发送邮件

raogr8fs  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(153)

我在我的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),它在那里工作得很好。
有谁能帮我弄清楚我在这里错过了什么?

kmpatx3s

kmpatx3s1#

AWS SES有一个“沙盒”模式,该模式有几个限制。由于这些限制,您只能将邮件发送到经过验证的电子邮件地址或域,或者发送到Amazon SES邮箱模拟器。但是,如果您在沙盒模式下尝试发送到未经验证的电子邮件地址,SES将拒绝发送请求。您应该在生产中使用它之前获得AWS团队的批准。

相关问题