2017-09-15 107 views
0

我已阅读了很多关于如何使用流明发送邮件的指南和问题及解答。我已经尝试了很多这些建议。在流明发送邮件

不过,我仍然得到这个错误:

(1/1) FatalThrowableError 
Type error: Too few arguments to function Illuminate\Support\Manager::createDriver(), 0 passed in /var/www/monitor/vendor/illuminate/support/Manager.php on line 88 and exactly 1 expected 

完整的堆栈跟踪here

这是我的控制器:

use Illuminate\Support\Facades\Mail; 

public function check() { 
    $response = $this->getResponse(); 
    if ($response) { 
     if ($this->isAlive($response->state)) { 
      $user = new \stdClass(); 
      $user->email = '****@gmail.com'; 
      $user->name = 'Albert'; 
      Mail::raw('test', function($mail) use ($user) { 
       $mail->to($user->email, $user->name)->subject('Test Subject'); 
      }); 
      // I've also tried Mail::send() but no luck 
      echo 'System is fine'; 
     } else { 
      echo 'System has issues'; 
     } 
    } else { 
     echo 'Error connecting'; 
    } 
} 

我已经注释掉,并添加以下行到我的bootstrap/app.php

$app->withFacades(); 
$app->register(App\Providers\AppServiceProvider::class); 
$app->register(Illuminate\Mail\MailServiceProvider::class); 

我有我的.env文件中的以下内容:

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
[email protected] 
MAIL_PASSWORD=mygmailpassword 
MAIL_ENCRYPTION=tls 

我错过了什么吗?

+0

你在线上有什么声明88 –

回答

2

问题是邮件管理器依赖于邮件配置,而且自5.1版以来,Lumen默认不包含邮件配置。如果您使用Lumen> 5.1,则需要添加自己的邮件配置文件,并更新引导文件以加载配置文件。

首先,在您的app目录旁边创建一个config目录。

接下来,在您的新config目录中添加一个mail.php文件。您可以从默认的Laravel安装中复制与您正在使用的Lumen版本相匹配的内容(例如,如果您使用的是Lumen 5.4,只需复制Laravel 5.4中的mail.php配置文件)。

最后,在bootstrap/app.php文件,加载配置文件:

$app->configure('mail'); 

我会把这行您注册的邮件服务提供商之前,只要是安全的。

+0

这解决了它。我现在得到超时错误,但至少我们比以前进一步。感谢patricus! – Albert