发送邮件
邮件配置 .env
发送邮件使用 25 端口,或者 465 端口
- 465 配置方式
MAIL_DRIVER=smtp MAIL_HOST=smtp.qq.com MAIL_PORT=465 MAIL_USERNAME=309078303@qq.com MAIL_PASSWORD=ofg-----caei // 邮箱授权码 MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=309078303@qq.com // 发件人邮箱 MAIL_FROM_NAME=发件人名称
- 25 配置方式
MAIL_DRIVER=smtp MAIL_HOST=smtp.qq.com MAIL_PORT=25 MAIL_USERNAME=309078303@qq.com MAIL_PASSWORD=ofg-----caei // 邮箱授权码 MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=309078303@qq.com // 发件人邮箱 MAIL_FROM_NAME=发件人名称
创建邮件 view
在 view 中添加 mail-msg.blade.php 文件
创建邮件
php artisan make:mail MsgMail
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class MsgMail extends Mailable
{
use Queueable, SerializesModels;
protected $aToUsers;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($aToUsers)
{
$this->aToUsers = $aToUsers;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
// 主题
$this->subject('邮件主题');
// 收件人
$this->to($this->aToUsers);
// 抄送人
$this->cc(['test@qq.com']);
// 密送人
$this->bcc(['test@qq.com']);
// 附件 使用绝对路径
$this->attach('D:\www\lara_es\public\test5.jpg');
/**
* storage 路径添加附件
* 默认 storage/app 路径前缀,补足后面的路径即可
* 前缀具体看 app/config/filesystems.php 中 local.root 的配置
*/
$this->attachFromStorage('public/test5.jpg');
return $this->view('mail-msg');
}
}
在控制器中使用
<?php
namespace App\Http\Controllers;
use App\Mail\MsgMail;
use Illuminate\Support\Facades\Mail;
class TestController extends Controller
{
public function index(){
// 直接发送
Mail::send(new MsgMail(['test@qq.com']));
// 队列方式发送
Mail::queue(new MsgMail(['test@qq.com']));
}
}
使用队列发送
- 安装 predis
compoer require predis/predis
- 配置env
# 修改此项 QUEUE_CONNECTION=redis # 添加此项 REDIS_CLIENT=predis
- 开启队列
php artisan queue:work --tries=3
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: