![](/img/trans.png)
[英]how to fix mail(): SMTP server response: 550 5.5.0 Invalid EHLO/HELO domain error in php
[英]550 Bad HELO - Host impersonating domain name Laravel
我正在嘗試設置 Laravel 身份驗證,包括“密碼重置”功能。 但是當我嘗試發送電子郵件時遇到了錯誤。 我得到的錯誤是:
Expected response code 250 but got code "550", with message "550 Bad HELO - Host impersonating domain name
我在 Cloudflare 中使用 Laravel 5.6。 我的主機說這可能是問題所在,但我已經嘗試禁用 Cloudflare Dashboard 內的所有 Cloudflare DNS 功能,但這沒有用。 我確信我使用的是正確的郵件設置,因為它們在我的手機和任何其他設備上都可以正常工作。 另外,我試過切換端口,無論我是否填寫有效端口都沒有關系,它會不斷給我這個錯誤。
Laravel 5.6 使用 $_SERVER["SERVER_NAME"] 作為你的本地域。 您應該將 localdomain 更改為您的 MAIL_HOST
這對我有用:
配置/mail.php
'localdomain' => env('MAIL_HOST')
您應該對供應商進行一些更改:vendor/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'))
替換注釋代碼,
我知道這是最糟糕的解決方案,但似乎沒有其他解決方案。
我遇到了同樣的問題,我嘗試了上面的答案,但它對我沒有幫助,但由於奇怪的原因,以下對我有用......
在您的 /config/mail.php 添加以下行:
'localdomain' => 'localhost'
不要問我為什么xD
@bardia-mazaheri 是對的,但更好的解決方案是這樣做:
class AppServiceProvider extends ServiceProvider
{
public function register()
{
// There is a bug in which the Swift library loads 'transport.localdomain' value from $_SERVER['SERVER_NAME']
// which results to wrong host name for email server and causes an error:
// Expected response code 250 but got code "550", with message "550 Bad HELO - Host impersonating domain name
// described here https://stackoverflow.com/questions/55279922/550-bad-helo-host-impersonating-domain-name-laravel
\Swift_DependencyContainer::getInstance()
->register('transport.localdomain')
->asValue('mail.domain.com');
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.