mailtrap.io - 一種更方便的郵件測試方式

雪風發表於2019-05-23

我們在專案開發中經常需要使用傳送郵件相關的功能,比如註冊驗證、密碼找回等,在laravel專案開發中測試郵件相關任務也很方便,Laravel 為本地開發期間提供了三種 「禁用」真實傳送的途徑。


日誌驅動

log 郵件驅動採取將郵件訊息寫入日誌取代傳送郵件,已備檢視。應用環境配置的更多訊息,請查閱 配置文件

通用配置

Laravel 為通過框架傳送的郵件提供了指定常用收件人的其他解決方案。通過此方法,應用生成的郵件都將傳送到指定地址,以取代傳送訊息時指定的真實地址。可以藉助 config/mail.php 配置檔案的 to 選項實現此目的:

'to' => [
    'address' => 'example@example.com',
    'name' => 'Example'
],

Mailtrap

最後,你可以使用 Mailtrap 服務和 smtp 驅動傳送郵件訊息到 「虛擬」郵箱,這樣就可以在真實的郵件客戶端檢視郵件訊息。此方法的好處是允許你在 Mailtrap 的訊息閱覽器中實際檢視最終的郵件。


社群教程中常用的是方式一,日誌驅動定義 MAIL_DRIVER=log ,然後在 log 中檢視郵件連結,日誌的方式看不到真實的郵件效果,而方式二是使用的真實傳送,但並不方便快捷,我個人更習慣第三種方式 Mailtrap,具有方式一的簡單和方式二的模擬優點。

.env 中預設其實也是這種方式:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

我們要做的只是配置使用者名稱和密碼就可以了,去 mailtrap 官網 https://mailtrap.io/ 註冊一個賬號(可以直接使用github登入),然後建立一個 Inbox ,會分配一個使用者名稱和密碼,類似如下:

直接在 .env 中填上使用者名稱和密碼,在專案測試中所有傳送的郵件全部會在你的郵箱中,有真實的發件人、收件人和內容。

相關文章