Lumen 5.3发送电子邮件

Jay*_*kat 4 phpmailer laravel lumen

我尝试使用gmail smtp config从Lumen发送电子邮件.我在用:

  • illuminate/mail,版本 5.3
  • lumen,版本 5.3

我无法发送电子邮件.

我的路由器:

$app->get('/', function () use ($app) {
    $app->get('mail','mailcontroller@mail');
});
Run Code Online (Sandbox Code Playgroud)

我的AppServiceProvider.php:

namespace App\Providers;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider {

    public function register() {
    $this->app->singleton('mailer', function ($app) {
        $app->configure('services');
        return $app->loadComponent('mail', 'Illuminate\Mail\MailServiceProvider', 'mailer');
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我的.env配置:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=*******@gmail.com
MAIL_PASSWORD=*********
MAIL_ENCRYPTION=tls
Run Code Online (Sandbox Code Playgroud)

我的邮件控制器:

<?php

namespace App\Http\Controllers;
use Illuminate\Support\Facades\Mail;

class mailcontroller extends Controller {
    public function mail(){
        Mail::raw('Raw string email', function($msg) { 
            $msg->to(['****.com']); 
            $msg->from(['*****@gmail.com']); });
    }
}
Run Code Online (Sandbox Code Playgroud)

我也启用了以下行app.php:

$app->register(App\Providers\AppServiceProvider::class);
$app->withFacades();
Run Code Online (Sandbox Code Playgroud)

GTC*_*ais 27

派对有点晚了,但这就是我在Lumen 5.4中的表现(我知道它可能有点笨拙并且不适合所有人,但仍然如此):

1)拉入illuminate/mail:

composer require illuminate/mail

2)将服务提供商添加到您的bootstrap/app.php:

$app->register(\Illuminate\Mail\MailServiceProvider::class); 并取消注释 $app->withFacades();

有可能/可能通过以下方式实现,.env但我没有尝试过:

3)安装phanan的级联配置 - https://github.com/phanan/cascading-config并按照那里描述的Lumen的安装过程进行操作

4)config在应用程序的根目录中创建文件夹并复制粘贴完整的Laravelconfig/mail.php

5)添加$app->configure('mail');bootstrap/app.php

6)确保实际的配置mail.php是正确的

现在,您应该能够像在完整的Laravel安装中一样发送邮件.

  • 如果有人正在努力通过输入解决梅勒,我不得不添加`$ this-> app-> alias('mailer','Illuminate\Mail\Mailer');`app apprapped后(我在注册方法中添加了它) AppServiceProvider) (2认同)
  • 如果有人在安装 `illuminate/mail` 时遇到问题(版本问题),请执行 `composer show --installed | grep 照亮`和通知版本。然后运行`composer require living/mail:~version.number`。之后,我能够按照您的步骤@GTCrais。谢了哥们。 (2认同)