Laravel 郵箱服務使用

毛仔發表於2018-11-24

進入laravel專案根目錄

composer require guzzlehttp/guzzle": "~5.3|~6.0
 MAIL_DRIVER=smtp//開啟163的smtp服務,獲取到隨機密碼
 MAIL_HOST=smtp.163.com
 MAIL_PORT=25
 MAIL_USERNAME=18106503226@163.com//傳送者郵箱
 MAIL_PASSWORD=********//密碼,隨機生成的
 MAIL_ENCRYPTION=null
引數解釋

1.MAIL_DRIVER
laravel提供了四種種驅動,Mailgun驅動,Mandrill驅動,SES驅動,Smtp驅動,這幾種都依賴我們第一步安裝的guzzle,具體可以參考laravel手冊。本次選擇的是smtp驅動。所以mail_derver=smtp
2.MAIL_HOST
郵件傳輸伺服器,一般免費的郵箱,如下列出的,他們的SMTP伺服器就是在域名前加上smtp就行了.

smtp.163.com 
smtp.21cn.com 
smtp.sina.com.cn 
smtp.sohu.com 
smtp.126.com

3.MAIL_USERNAME PASSWORD
當你在郵箱後臺設定了開通smtp,就回讓你設定一個專門供第三方使用的密碼,這裡的密碼就是這個密碼,具體這是可以百度查詢。
163郵箱開啟smtp教程

//設定驅動
'driver' => env('MAIL_DRIVER', 'smtp')
// 傳送者   也可以後面通過Mail函式設定
'from' => ['address' =>'18106503226@163.com', 'name' => 'Jacklin']
Mail::send('email', $data, function ($message) use ($data) {
     $message->to('957534377@qq.com', $data['name'])->subject('你好啊');
});

1.function() use (){}
這是php閉包函式的結構,可以使用變數作為引數,在這裡沒有什麼好說的,但是閉包函式的用法的機制類似js的機制,具體百度。
2.引數分析

Mail::send(1,2,3)

第一個引數是一個blade模板,裡面可以寫具體簡訊內容,並作樣式處理
第二個引數是一個陣列,傳入blade模板中
第三個引數是閉包函式,使用這個閉包可以指定訊息的其他屬性,例如抄送、群發,等等

簡單傳送可以使用to方法,to方法裡定義了收件人的郵箱和收件人稱為,可以為空。

Route::get('test',function(){
    \Mail::send('email', [], function ($message)  {
        $message->to('361525737@qq.com', '123')->subject('主題');
    });
});

具體方法如下:

$message->from($address, $name = null);
$message->sender($address, $name = null);
$message->to($address, $name = null);
$message->cc($address, $name = null);
$message->bcc($address, $name = null);
$message->replyTo($address, $name = null);
$message->subject($subject);
$message->priority($level);
$message->attach($pathToFile, array $options = []);
// 從$data字串追加檔案...
$message->attachData($data, $name, array $options = []);
// 獲取底層SwiftMailer訊息例項...
$message->getSwiftMessage();

qq郵箱smtp

rkjclatrixkpbjgc
phhbkmhzattwcagd
powpjvvxhwowbhjd

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章