Lumen 5.3 发送邮件
Posted
技术标签:
【中文标题】Lumen 5.3 发送邮件【英文标题】:Lumen 5.3 send email 【发布时间】:2017-04-05 07:44:24 【问题描述】:我尝试使用 gmail smtp 配置从 Lumen 发送电子邮件。我正在使用:
illuminate/mail
,版本5.3
lumen
,版本5.3
我无法发送电子邮件。
我的路由器:
$app->get('/', function () use ($app)
$app->get('mail','mailcontroller@mail');
);
我的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');
);
我的.env
配置:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=*******@gmail.com
MAIL_PASSWORD=*********
MAIL_ENCRYPTION=tls
我的邮件控制器:
<?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']); );
我还在app.php
中启用了以下行:
$app->register(App\Providers\AppServiceProvider::class);
$app->withFacades();
【问题讨论】:
【参考方案1】:聚会有点晚了,但这是我在 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
文件夹并复制粘贴完整的 Laravel 的 config/mail.php
5) 将$app->configure('mail');
添加到bootstrap/app.php
6)确保mail.php
中的实际配置正确
现在您应该能够像在完整的 Laravel 安装中一样发送邮件了。
【讨论】:
如果有人正在努力通过 typehinting 解决 Mailer,我必须在应用启动后添加$this->app->alias('mailer','Illuminate\Mail\Mailer');
(我在 AppServiceProvider 的 register 方法中添加了它)
如果有人在安装illuminate/mail
时遇到问题(版本问题),请执行composer show --installed | grep illuminate
并注意版本。然后运行composer require illuminate/mail:~version.number
。在那之后,我能够按照你的步骤@GTCrais。谢谢老兄。
当我尝试发送邮件时遇到问题。 FatalThrowableError 找不到类“Illuminate\Mail\MailServiceProvider”【参考方案2】:
如果安装的是php 7.1,请使用Mail 5.7版本
composer require illuminate/mail 5.7.*
【讨论】:
以上是关于Lumen 5.3 发送邮件的主要内容,如果未能解决你的问题,请参考以下文章