利用Laravel自帶的Mail類發郵件


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

  首先新建一個Laravel項目,在其.env文件里找到MAIL相關值,配好郵件發送賬號的配置(根據不同的driver和host需自己進行對應,如163或者其他)。

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

最后在自己的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了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM