Laravel 寄信範例

前言

近期工作替商品做了下訂的功能,寫了一堆寄信功能,像是下訂成功、下訂失敗、請求報價、信箱驗證信和優惠碼通知信等…
那就來記錄一下寄信的寫法吧

環境

  • OS : Windows 10

筆記說明

  • 程式可以參考我的 laravel筆記
  • 建立 Controller
    • php artisan make:controller MailController
  • 新增 app\Mail 來放建立信件的物件
  • 新增 resources\views\email 來放信件的 html template
    • 用 Blade Templates 去建立信件樣板
    • 可以用 @include 去匯入部分樣板
    • 我的筆記程式參考這個樣板
  • 在 MailService 用 Mail 去寄信
    1
    2
    3
    $sampleMail = new SampleMail($smapleData);
    Mail::to($receiverMail)
    ->send($sampleMail);
    • 可以傳入 $smapleData 信件需要的資料
      • 可以用雙層大括號顯示傳入變數
    • Mail::to 設定收件者信箱
  • 寄件者和寄件者名稱會吃 env
    1
    2
    MAIL_FROM_ADDRESS="sender@gmail.com"
    MAIL_FROM_NAME="寄件者"
  • 在 env 設定 smtp
    • 測試寄信結果我會用 Mailtrap
      1
      2
      3
      4
      5
      6
      MAIL_MAILER=smtp
      MAIL_HOST=smtp.mailtrap.io
      MAIL_PORT=2525
      MAIL_USERNAME=test_username
      MAIL_PASSWORD=test_password
      MAIL_ENCRYPTION=tls

結語

  • 寄信不難,只是麻煩

參考