利用Laravel自帶的Mail類發郵件

  因爲項目在運行過程當中常常用到郵件檢測報警的功能,而在以前我都是用shell腳本發送郵件。shell腳本的優勢是能夠直接處理服務器指令,可是其缺點就是處理數據的能力效率過低,取數據庫的許多數據要先把數據寫入文件裏,而後每行讀文件而且分割來取出你想要的數據,相對來講麻煩太多。因此本人就準備直接利用Laravel框架封裝好的Mail類直接發郵件,並且php語言相對shell來講數據處理能力簡直強太多,因此果斷棄坑了。php

  首先新建一個Laravel項目,在其.env文件裏找到MAIL相關值,配好郵件發送帳號的配置(根據不一樣的driver和host需本身進行對應,如163或者其餘)。linux

其次,在config目錄下的mail.php配置好address和name,當時我就是沒配這個就半天發不出去,這種相似於配置項的東西Lavarel要是都寫在.env裏那就不是隻用在.env裏寫好了以後就能夠一鍵使用郵件了,豈不是更方便,這個地方給個差評。mail.php把這兩個地方加上便可:shell

最後在本身的Controller裏引用Mail類數據庫

而後在調用發郵件的方法send():
服務器

//發郵件
$flag = Mail::send('emails.test',['data'=>$data],function($message) { $to = '123456789@qq.com';
      $message ->to($to)->subject('測試郵件'); }); if($flag) { echo '郵件發送成功'; } else { echo '郵件發送失敗'; }

send()方法裏第一個參數爲resource/views下的任意一個頁面(這個頁面就是郵箱要顯示的內容),第二個參數爲從後臺傳回到那個頁面的參數,$to爲郵件接收人,subject爲郵件的主題,這樣就把一封郵件呢發出去了,相比以前方便不少。框架

最後我在linux下放一個crontab定時向我這個項目發curl請求就能夠定時跑任務了,早就應該棄shell了。curl

相關文章
相關標籤/搜索