Laravel Jetstream 和 AWS SES 更改发件人电子邮件地址

Laravel Jetstream and AWS SES change sender email address

我正在使用:

问题:

我正在尝试为我的应用程序设置密码重置系统。 问题是 Fortify 使用用户的电子邮件地址自动发送密码重置电子邮件(即:如果电子邮件为 test@example.com 的用户尝试重置密码, Laravel 将尝试从 test@example.com).

发送电子邮件

由于 Amazon SES 的工作方式,您只能从经过验证的身份发送电子邮件。我在 SES 上验证了我的电子邮件地址 (info@openlabvr.com),只需指定 ->from(),我就可以在 Laravel 中发送常规电子邮件。这里一切正常。

当然,当 Laravel 尝试使用用户的电子邮件地址发送重置密码电子邮件时,我从 SES 收到错误消息:

<Code>MessageReje (truncated...) MessageRejected (client): Email address is not verified. The following identities failed the check in region US-WEST-1: test@example.com - <ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/"> <Error> <Type>Sender</Type> <Code>

我试过的:

我试图在我的 .env 文件中设置 MAIL_FROM_ADDRESS="info@openlabvr.com",然后设置为 运行 php artisan config:clear and/or php artisan optimize,但没有任何改变。

我还尝试在 services.php 文件中设置 Source 选项,如下所示:

'ses' => [
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
        'options' => [
            'Source' => 'info@openlabvr.com',
        ],
    ],

但同样,没有任何改变。

最后,我尝试将用户的电子邮件地址从 test@example.com 更改为 info@openlabvr.com,并且按预期工作。

tldr

如何强制Fortify使用info@openlabvr.com作为发件人地址来重置我的用户密码?

已解决。

问题出在 AWS SES 而不是 Fortify 在经过验证的身份下,在 SES 控制台上显示:

A verified identity is a domain, subdomain, or email address you use to send email through Amazon SES

实际上,这不是真的。您还需要验证收件人电子邮件地址的身份。 因此,解决我的问题的唯一方法是申请一个生产SES帐户,而不是我拥有的沙盒帐户。