Laravel Jetstream и AWS SES меняют адрес электронной почты отправителя

#php #laravel #amazon-web-services #amazon-ses #jetstream

Вопрос:

Я использую:

  • Инерция реактивного потока Laravel
  • Ларавель 8
  • Простой почтовый сервис Amazon (Sendbox)

Проблема:

Я пытаюсь настроить систему сброса пароля для своего приложения. Проблема в том, что Fortify автоматически отправляет электронное письмо с сброшенным паролем, используя адрес электронной почты пользователя (т. Е.: если пользователь с электронной почтой test@example.com попытается сбросить пароль, Laravel попытается отправить электронное письмо с test@example.com).

Из-за того, как работает Amazon SES, вы можете отправлять электронную почту только от проверенных пользователей. У меня есть мой адрес электронной почты (info@openlabvr.com) проверено на SES, и я могу отправлять регулярные электронные письма в Laravel, просто -gt;from() указав . Здесь все работает нормально.

Но, конечно, когда Laravel пытается отправить электронное письмо со сброшенным паролем, используя адрес электронной почты пользователя, я получаю сообщение об ошибке от SES:

lt;Codegt;MessageReje (truncated...) MessageRejected (client): Email address is not verified. The following identities failed the check in region US-WEST-1: test@example.com - lt;ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/"gt; lt;Errorgt; lt;Typegt;Senderlt;/Typegt; lt;Codegt;

Что я пробовал:

Я попытался установить MAIL_FROM_ADDRESS="info@openlabvr.com" в своем .env файле и запустить php artisan config:clear и/или php artisan optimize , но ничего не изменилось.

Я также попытался установить Source опцию в services.php файле следующим образом:

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

Но опять же, ничего не изменилось.

Наконец, я попытался изменить адрес электронной почты моего пользователя с test@example.com чтобы info@openlabvr.com, и это сработало, как и ожидалось.

tldr

Как я могу заставить Fortify использовать info@openlabvr.com в качестве адреса отправителя для сброса пароля моего пользователя?

Комментарии:

1. Кажется странным решение fortify сделать это. Я, например, с большим подозрением отнесся бы к письму, отправленному с моего собственного адреса электронной почты на мой собственный адрес электронной почты, в котором говорится о сбросе пароля.

2. Я тоже об этом думаю. Я попытался заглянуть в документацию по укреплению, но ничего об этом не нашел. Может быть, я упускаю что-то еще?

Ответ №1:

Решенный.

Проблема была с AWS SES, а на самом деле не с Fortify Под проверенными удостоверениями, на консоли SES, говорится в нем:

Подтвержденная личность-это домен, поддомен или адрес электронной почты, которые вы используете для отправки электронной почты через Amazon SES

На самом деле это не так. Вам также необходимо подтвердить личность адреса электронной почты получателя. Поэтому единственное решение моей проблемы-подать заявку на производственную учетную запись SES, а не на ту, которая была у меня в песочнице.