郵件配置 .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->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 協議》,轉載必須註明作者和本文連結