laravel 郵件傳送功能使用說明

Diego_crazy發表於2020-11-20

文件手冊:郵件傳送《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 協議》,轉載必須註明作者和本文連結

相關文章