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 协议》,转载必须注明作者和本文链接
关于 LearnKu
请教下,.env里面配置内容,能否动态读取客户自定义的内容,而不是需要以代码形式固定呢?
@feix0326 1.”.env“配置文件是可以动态使用的,就是配置时都配置成变量,用的时候灵活替换即可(个人认为此情况应该是方便对env环境变量进行统一的管理,也可理解成”配置中心“的基本文件); 2.这里的.env是邮件服务端的一些基本配置信息,对于一个系统或平台来说基本是固定的,所以放.env环境配置文件了(当然你也可以想放哪儿就放哪儿,重点是Mailable基类的使用); 3.”.env“为环境变量配置文件,应是配置与环境相关的变量。如你所说”动态读取客户自定义的内容“,任何时候都不应该放env文件或与env文件的某些配置值相关;