2017-02-24 65 views
1

我收到以下錯誤試圖從本地主機使用SMTP發送郵件:Laravel 5.4 SMTP錯誤 「發送AUTH命令第一」

Expected response code 250 but got code "503", with message "503 5.5.4 Error: send AUTH command first. "

.ENV

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.yandex.com 
MAIL_PORT=465 
[email protected] 
MAIL_PASSWORD=11111111 
MAIL_ENCRYPTION=ssl 
[email protected] 
MAIL_NAME=MY.NAME 

配置/ mail.php

<?php 
    return [ 
     'driver' => env('MAIL_DRIVER', 'smtp'), 
     'host' => env('MAIL_HOST', 'smtp.yandex.com'), 
     'port' => env('MAIL_PORT', 465), 
     'from' => [ 
      'address' => '[email protected]', 
      'name' => 'MY.NAME', 
     ], 
     'encryption' => env('MAIL_ENCRYPTION', 'ssl'), 
     'username' => env('[email protected]'), 
     'password' => env('11111111'), 
     'sendmail' => '/usr/sbin/sendmail -bs', 
    ]; 

嘗試過:ch老化端口,加密,清除緩存,以所有可能的組合重新啓動服務器。 :) 正如我所見,還有一個參數需要傳遞給郵件程序庫。有些東西就像

auth_mode=login_first 

這可以通過laravel設置來完成嗎?

+0

您可能會更改爲MAIL_ENCRYPTION = null。但後來我得到了'預期的響應代碼250,但得到了代碼「」,並帶有消息「」' 對於開發也可以考慮使用[漂亮和免費的郵件捕獲器](https://mailtrap.io/)。並且不要忘記清除配置緩存'php artisan config:cache' –

+0

我儘量不設置加密,但它沒有幫助。另外,我認爲這個特殊的smtp服務器需要ssl。在過去的幾個小時裏,我嘗試了mailgun,mandrill,sparkpost,並且只得到更多的錯誤。這不應該是困難的,對吧​​? :) – sr9yar

回答

1

我張貼我的工作設置。您必須檢查配置文件中如何使用輔助函數laravel env。另外,當使用smtp.yandex.com身份驗證電子郵件和表格電子郵件必須匹配。

Laravel Docs for env()

The env function gets the value of an environment variable or returns a default value:

$env = env('APP_ENV');

// Return a default value if the variable doesn't exist...

$env = env('APP_ENV', 'production');

.ENV

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.yandex.com 
MAIL_PORT=465 
[email protected] 
MAIL_PASSWORD=123123123 
MAIL_ENCRYPTION=ssl 
[email protected] 
MAIL_NAME=MY.NAME 

配置/ mail.php

<?php 
return [ 
    'driver' => env('MAIL_DRIVER', 'smtp'), 
    'host' => env('MAIL_HOST', 'smtp.yandex.com'), 
    'port' => env('MAIL_PORT', 465), 
    'from' => [ 
     'address' => env('MAIL_FROM','[email protected]'), 
     'name' => env('MAIL_NAME','MY.NAME'), 
    ], 
    'encryption' => env('MAIL_ENCRYPTION', 'ssl'), 
    'username' => env('MAIL_USERNAME','[email protected]'), 
    'password' => env('MAIL_PASSWORD','123123123'), 
    'sendmail' => '/usr/sbin/sendmail -bs', 
    'pretend' => false, 
]; 

控制器功能

public function testmail() 
{ 
    $user = Auth::user(); 
    $pathToLogo = config('app.url').'/images/logo/logo_250.png'; 
    Mail::send('emails.testmail', array('user' => $user, 'pathToLogo' => $pathToLogo), function($message) use ($user) 
     { 
      $message->to($user->email); 
      $message->subject('Test message'); 
     }); 
    return redirect()->route('home')->with('message','Test message sent.'); 
}