Laravel 第八章學習——郵件傳送

gongmeng發表於2019-12-05

一、如果我們需要在模型被建立之前進行一些設定,則可以通過監聽 creating 方法來做到。該方法是由 Eloquent 模型觸發的一個事件。事件是 Laravel 提供一種簡單的監聽器實現,我們可以對事件進行監聽和訂閱,從而在事件被觸發時接收到響應並執行一些指定操作。Eloquent 模型預設提供了多個事件,我們可以通過其提供的事件來監聽到模型的建立,更新,刪除,儲存等操作。creating 用於監聽模型被建立之前的事件,created 用於監聽模型被建立之後的事件,boot 方法會在使用者模型類完成初始化之後進行載入,因此我們對事件的監聽需要放在該方法中。

二、Laravel本地郵件測試,只需要配置.env檔案,配置完成後,郵件不會真的傳送出去,而是出現在storage/logs/laravel.log檔案中;具體配置示例如下:

MAIL_DRIVER=log

三、在 Laravel 中,可以通過 Mail 介面的 send 方法來進行郵件傳送,注意呼叫 use Mail,示例程式碼如下:

$view = 'emails.confirm';
$data = compact('user');
$from = 'summer@example.com';
$name = 'Summer';
$to = $user->email;
$subject = "感謝註冊 Weibo 應用!請確認你的郵箱。";

Mail::send($view, $data, function ($message) use ($from, $name, $to, $subject) {
    $message->from($from, $name)->to($to)->subject($subject);
});

Mail 的 send 方法接收三個引數。

  • 第一個引數是包含郵件訊息的檢視名稱。
  • 第二個引數是要傳遞給該檢視的資料陣列。
  • 最後是一個用來接收郵件訊息例項的閉包回撥,我們可以在該回撥中自定義郵件訊息的傳送者、接收者、郵件主題等資訊。

相關文章