laravel 邮件发送功能使用说明

文档手册:邮件发送《Laravel 8 中文文档》

.env配置说明:

MAIL_MAILER=smtp                    //驱动
MAIL_HOST=smtp.qq.com                //邮箱服务器地址
MAIL_PORT=465                        //端口
MAIL_USERNAME=86802534@qq.com        //用户名
MAIL_PASSWORD=********                //smtp授权码或邮箱登录密码
MAIL_ENCRYPTION=ssl                    //加密方式:ssl
MAIL_FROM_ADDRESS=86802534@qq.com    //发送地址(一般同用户名)
MAIL_FROM_NAME="${APP_NAME}"        //发送名称,可自定义    

重要命令:php artisan make:mail DemoMailable,代码:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class DemoMailable extends Mailable
{
    use Queueable, SerializesModels;

    public $name;
    public $args;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($args, $name)
    {
        //
        $this->name = $name;
        $this->args = $args;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject('测试邮件标题')    //设置邮件标题
            ->view('emails.demo')               //使用的模板
            ->with(['key' => '参数']);          //模板传值 + public属性
    }

}

使用:

    public function sendMsg()
    {

        $name = 'Name Name';
        $args = [1,2,3];
        $rs = Mail::to('xxx@qq.com')            //接收地址
            ->cc('xxx@qq.com')                    //抄送
            ->cc('xxx@qq.com')                    //密送
            ->send(new DemoMailable($args, $name));

        $error = Mail::failures();
        if (!$error) {
            return 'ok';
        }
        return $error;
    }

基本的邮件发送功能就这样就ok了,发生的内容要想漂亮一点,编写个漂亮的模板就行了。
更多功能,请参考文档

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 2

请教下,.env里面配置内容,能否动态读取客户自定义的内容,而不是需要以代码形式固定呢?

3年前 评论

@feix0326 1.”.env“配置文件是可以动态使用的,就是配置时都配置成变量,用的时候灵活替换即可(个人认为此情况应该是方便对env环境变量进行统一的管理,也可理解成”配置中心“的基本文件); 2.这里的.env是邮件服务端的一些基本配置信息,对于一个系统或平台来说基本是固定的,所以放.env环境配置文件了(当然你也可以想放哪儿就放哪儿,重点是Mailable基类的使用); 3.”.env“为环境变量配置文件,应是配置与环境相关的变量。如你所说”动态读取客户自定义的内容“,任何时候都不应该放env文件或与env文件的某些配置值相关;

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!