Laravel Jetstream 和 AWS SES 更改发件人电子邮件地址
Laravel Jetstream and AWS SES change sender email address
我正在使用:
- Laravel Jetstream惯性
- Laravel 8
- 亚马逊简单电子邮件服务(发件箱)
问题:
我正在尝试为我的应用程序设置密码重置系统。
问题是 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帐户,而不是我拥有的沙盒帐户。
我正在使用:
- Laravel Jetstream惯性
- Laravel 8
- 亚马逊简单电子邮件服务(发件箱)
问题:
我正在尝试为我的应用程序设置密码重置系统。 问题是 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帐户,而不是我拥有的沙盒帐户。