【问题标题】:Laravel Jetstream and AWS SES change sender email addressLaravel Jetstream 和 AWS SES 更改发件人电子邮件地址
【发布时间】:2021-12-12 04:40:37
【问题描述】:

我正在使用:

  • Laravel Jetstream 惯性
  • Laravel 8
  • 亚马逊简单电子邮件服务(Sendbox)

问题:

我正在尝试为我的应用程序设置密码重置系统。 问题是 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 和/或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 作为发件人地址来重置我的用户密码?

【问题讨论】:

  • fortify 这样做似乎是一个奇怪的决定。我真的会怀疑从我自己的电子邮件地址发送到我自己的电子邮件地址的电子邮件,说要重置我的密码。
  • 我也是这么想的。我试图在 Fortify 文档中查找,但没有找到任何相关信息。我可能还缺少其他东西吗?

标签: php laravel amazon-web-services amazon-ses jetstream


【解决方案1】:

解决了。

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

经过验证的身份是您使用的域、子域或电子邮件地址 通过 Amazon SES 发送电子邮件

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多