我正在尝试设置 Laravel 身份验证,包括“密码重置”功能。但是当我尝试发送电子邮件时遇到错误。我得到的错误是:
Expected response code 250 but got code "550", with message "550 Bad HELO - Host impersonating domain name
我将 Laravel 5.6 与 Cloudflare 结合使用。我的托管说这可能是问题所在,但我已经尝试禁用 Cloudflare Dashboard 中的所有 Cloudflare DNS 功能,但这没有用。我确信我使用的是正确的邮件设置,因为它们在我的手机和任何其他设备上都能正常工作。 另外,我试过切换端口,如果我填写一个有效的端口并不重要,它会一直给我这个错误。
最佳答案
Laravel 5.6 使用 $_SERVER["SERVER_NAME"] 作为你的本地域。 您应该将 localdomain 更改为您的 MAIL_HOST
这对我有用:
配置/邮件.php
'localdomain' => env('MAIL_HOST')
你应该对供应商做一点改变: 供应商/swiftmailer/swiftmailer/lib/dependency_maps/transport_deps.php
//->asValue(!empty($_SERVER['SERVER_NAME']) && '' === preg_replace('/(?:^\[)?[a-zA-Z0-9-:\]_]+\.?/', '', $_SERVER['SERVER_NAME']) ? trim($_SERVER['SERVER_NAME'], '[]') : '127.0.0.1')
->asValue(config('mail.localdomain'))
替换注释代码,
我知道这是最糟糕的解决方案,但似乎没有其他解决方案。
关于php - 550 Bad HELO - 主机冒充域名 Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55279922/