在Lumen发送邮件

时间:2017-09-15 04:04:50

标签: php laravel email lumen

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

但是,我仍然会收到此错误:

(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
MAIL_USERNAME=mygmailaddress@gmail.com
MAIL_PASSWORD=mygmailpassword
MAIL_ENCRYPTION=tls

我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

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

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

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

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

$app->configure('mail');

为了安全起见,我会在您注册邮件服务提供商之前加上这一行。