L

Laravel框架SMTP失效的解决方法

wittytsie 笔记 2024-04-12

众所周知,Laravel是目前最受欢迎的框架之一,就个人而言,和Symfony一样,这些是目前最好的 PHP 框架。
自今年 3 月以来,我一直被一个基于Laravel框架开发的网站上的一个bug折腾,网站的SMTP服务用不了,发送不了邮件,主机服务提供商说不是他们的问题帮不了,网站这边的log又查不出错误,整得我都不知道该怎么下手。
直到今天(2024 年4月),才解决了这个问题
在SMTP配置中,我们必须包含“local_domain”选项并将其指向我们的域名,例如:“example.com”。
在config/mail.php添加'local_domain' => env('MAIL_EHLO_DOMAIN'),
下面是config/mail.php的示例:

'mailers' => [
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
'local_domain' => env('MAIL_EHLO_DOMAIN'),
],
/*Other code*/
];

在 .env文件添加MAIL_EHLO_DOMAIN=example.com
下面是 .env 文件的示例:

MAIL_MAILER=smtp
MAIL_HOST=NAMESERVER.hostgator.mx
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=PASSWORD
MAIL_ENCRYPTION=ssl
MAIL_EHLO_DOMAIN=example.com
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"

此配置选项适用于任何框架。

NEXT
离线转换图片、视频、音频、文档的工具,妥妥的生产力助手

评论(0)

发布评论