簡體   English   中英

550 Bad HELO - 主機冒充域名 Laravel

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM