用流明发送邮件

Posted

技术标签:

【中文标题】用流明发送邮件【英文标题】:Sending mail in Lumen 【发布时间】:2018-02-24 04:06:46 【问题描述】:

我已经阅读了很多关于如何使用 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

我错过了什么吗?

【问题讨论】:

第 88 行有什么陈述 【参考方案1】:

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

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

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

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

$app->configure('mail');

为了安全起见,我会在您注册邮件服务提供商之前填写此行。

【讨论】:

这解决了它。我现在遇到超时错误,但至少我们比以前更远了。谢谢帕特里克斯!

以上是关于用流明发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

使用流明发送电子邮件,而不在 env 文件中设置 smtp 凭据

Laravel/流明 |未能分发事件

用java写一个邮件发送代码

如何在php用mail发送邮件

springboot用163邮箱、阿里云企业邮箱发送邮件的配置

怎么用HTML格式发送邮件.既怎么发HTML格式的邮件..?