我一直在尝试使用AWS SES在Laravel 7中设置邮件,并正确设置了我的所有凭证并将驱动程序设置为SES。
尝试使用默认的内置功能发送电子邮件验证时出现以下错误。
无法使用主机smtp.mailtrap.io:stream_socket_client()建立连接:无法连接到tcp://smtp.mailtrap.io:2465(操作超时)
.env
MAIL_DRIVER=ses
MAIL_FROM_ADDRESS=no-reply@taxsion.com
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=HIDDEN
AWS_SECRET_ACCESS_KEY=HIDDEN
AWS_DEFAULT_REGION=us-east-1
我已确保AWS密钥和机密具有对SES的完全访问权限,在我的config/services.php
中,我将其设置为使用这些凭据。
'ses' => [
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
]
我搜索了许多“解决方案”,并尝试为SES创建一个单独的用户,但是没有运气。
任何帮助都会很棒,谢谢!
答案 0 :(得分:0)
Laravel 7引入了Multiple Mail Drivers,它改变了邮件配置的工作方式。
如果您查看自己的config/mail.php
,则会发现您拥有一个MAIL_MAILER
值而不是MAIL_DRIVER
。您应该可以将MAIL_DRIVER
文件中的MAIL_MAILER
更改为.env
:
MAIL_MAILER=ses
进行更改后,您可能还需要清除配置缓存:
php artisan config:clear
答案 1 :(得分:0)
问题是我的.env
由于缓存而没有加载。
仅运行php artisan config:clear
即可清除缓存的配置,并使用我的新参数对其进行更新。
我的.env
包含以下内容:
MAIL_MAILER=ses
MAIL_FROM_ADDRESS=no-reply@domain.com
MAIL_FROM_NAME="${APP_NAME}"