Laravel/Lumen 5.4 发送邮件

栏目: PHP · 发布时间: 6年前

内容简介:Laravel/Lumen 5.4 发送邮件

这里使用163邮箱,个人邮箱需要开启smtp服务

Laravel/Lumen 5.4 发送邮件

当勾选设置POP3/SMTP/IMAP时提示需要设置授权码,需要跟登录密码区分开。

Laravel/Lumen 5.4 发送邮件

修改配置文件

编辑 .env 文件

MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=465
MAIL_USERNAME=test@163.com
MAIL_PASSWORD=******   //这里填写授权码
MAIL_FROM_ADDRESS=test@163.com
MAIL_FROM_NAME=test
MAIL_ENCRYPTION=ssl

如果是 Lumen 需要装mail模块

修改 composer.json 文件中 require 部分配置如下:

"require": {
        "php": ">=5.6.9",
        "laravel/lumen-framework": "5.4.*",
        "vlucas/phpdotenv": "~2.2",
        "guzzlehttp/guzzle": "^6.2",
        "predis/predis": "^1.1",
        "illuminate/redis": "^5.4",
        "illuminate/mail":"5.4.*"
    }

并运行 composer install 来安装 mail

创建发送邮件命令

如果是 laravel 直接执行命令,如果是 lumen 自己创建目录和文件

$ php artisan make:command sendMailCommand
Console command created successfully.

创建后生成此文件 app/Console/Commands/sendMailCommand.php

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Support\Facades\Mail;

class sendMailCommandextends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'mail:sendMailCommand';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '发送邮件命令';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $content = '这是一封来自 Laravel 的测试邮件.';
        $toMail  = 'cenhuqing@qq.com';

        Mail::raw($content, function ($message)use($toMail){
            $message->subject('[ 测试 ] 测试邮件SendMail - ' .date('Y-m-d H:i:s'));
            $message->to($toMail);
        });
    }
}

将命令加入到 app/Console/Kernel.php

protected $commands = [
        sendMailCommand::class
];

执行命令测试

$ php artisan |grep send*
  mail:sendMailCommand  发送邮件命令
$ php artisan mail:sendMailCommand                                             
  [Swift_TransportException]                                                                            
  Failed to authenticate on SMTP server with username "test@163.com" using 2 possible authenticators

注意: 上述执行命令报错,由于验证不通过导致此问题。跟代码没有关系。所以要检查下配置。我在这里找了很久,仍然没有发现错误,最后重置了下授权码后正常。不知道是啥问题。

Laravel/Lumen 5.4 发送邮件

问题: 我线上的版本是lumen,每次修改.env配置文件后不会生效,而是使用之前的配置。需要重启后才会生效新配置,不知道是什么原因,也没有配置缓存。如果哪位大神指导请告知下,我的邮箱cenhuqing@gmail.com。 谢谢!


以上所述就是小编给大家介绍的《Laravel/Lumen 5.4 发送邮件》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

MATLAB实用教程

MATLAB实用教程

穆尔(Holly Moore) / 高会生 刘童娜 李聪聪 / 电子工业出版社 / 2010-1-1 / 59.00元

MATLAB实用教程(第二版),ISBN:9787121101793,作者:(美)穆尔 著,高会生,刘童娜,李聪聪 译一起来看看 《MATLAB实用教程》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器