(AWS SES / Laravel) - 无法与主机 smtp.mailtrap.io 建立连接

(AWS SES / Laravel) - Connection could not be established with host smtp.mailtrap.io

我一直在尝试使用 AWS SES 在 Laravel 7 中设置邮件并正确设置我的所有凭据并将我的驱动程序设置为 SES。

尝试使用默认内置功能发送电子邮件验证时出现以下错误。

Connection could not be established with host smtp.mailtrap.io :stream_socket_client(): unable to connect to tcp://smtp.mailtrap.io:2465 (Operation timed out)

.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'),
]

我搜索了很多 "solutions" 并尝试为 SES 创建一个单独的用户,但没有成功。

任何帮助都会很棒,谢谢!

Laravel 7 引入了 Multiple Mail Drivers,它改变了邮件配置的工作方式。

如果您查看 config/mail.php,您会发现您有一个 MAIL_MAILER 值而不是 MAIL_DRIVER。您应该能够简单地将 MAIL_DRIVER 更改为 MAIL_MAILER 在您的 .env 文件中:

MAIL_MAILER=ses

您可能还需要在进行更改后清除配置缓存:

php artisan config:clear

问题是我的 .env 由于缓存而未加载。

只需 运行 php artisan config:clear 清除缓存配置并使用我的新参数更新它。

我的 .env 包含以下内容:

MAIL_MAILER=ses
MAIL_FROM_ADDRESS=no-reply@domain.com
MAIL_FROM_NAME="${APP_NAME}"