我尝试使用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();
答案 0 :(得分:26)
派对有点晚了,但是我在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安装中一样发送邮件。
答案 1 :(得分:0)
如果已安装php 7.1,请使用Mail 5.7版本
composer require illuminate/mail 5.7.*