Lumen 5.3 发送电子邮件
Lumen 5.3 send email
我尝试使用 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();
聚会有点晚了,但这是我在 Lumen 5.4 中的做法(我知道这可能有点笨拙,并不适合所有人,但仍然如此):
1)拉入illuminate/mail
:
composer require illuminate/mail
2) 将服务提供商添加到您的 bootstrap/app.php
:
$app->register(\Illuminate\Mail\MailServiceProvider::class);
并取消注释 $app->withFacades();
是possible/likely下面可以通过.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 安装一样发送邮件了。
如果安装了php7.1,使用Mail 5.7版本
composer require illuminate/mail 5.7.*
我尝试使用 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();
聚会有点晚了,但这是我在 Lumen 5.4 中的做法(我知道这可能有点笨拙,并不适合所有人,但仍然如此):
1)拉入illuminate/mail
:
composer require illuminate/mail
2) 将服务提供商添加到您的 bootstrap/app.php
:
$app->register(\Illuminate\Mail\MailServiceProvider::class);
并取消注释 $app->withFacades();
是possible/likely下面可以通过.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 安装一样发送邮件了。
如果安装了php7.1,使用Mail 5.7版本
composer require illuminate/mail 5.7.*