LaravelからMailDevを使う

投稿者: | 2019年10月11日

MailDevはSMTPサーバーで、ここに送信しますと外部には転送せずに保持し、かつWebから確認できます。
つまり、テスト環境などで誤ってお客さんにメールを送ったりすることが無くなります。
というわけでこのうっかり者たちへの救世主 MailDevをLaravelから使う方法を説明します。

インストール

MailDevをインストールするにはnpmを使用します。もしnpmがインストールされていない場合は、そちらを先にインストールしてください。
npmがインストールしてあれば、下記のコマンドを実行するだけです。

npm install -g maildev

起動

MailDevを実行するコマンドは次のようになります。

maildev

この場合のポート番号は、SMTPは「1025」、Webは「1080」となります。

SMTPやWebのポート番号を変更したい場合は次のようにします。

maildev -s 10025 -w 10080

この場合、SMTPは「10025」、Webは「10080」で稼働します。

Webからアクセスするときにベーシック認証をかけたいときは次のようにします。

maildev -s 10025 -w 10080 --web-user test --web-pass test

この場合、ポート番号は前のものと同じですが、webからアクセスするとベーシック認証がかかり、ユーザー名に「test」、パスワードに「test」の入力が必要になります。

永続的な起動

どうもmaildevだけでは知らないうちに落ちてることがあるので、foreverというのを使ってみます。

npm install -g forever
forever start /usr/bin/maildev -s 10025 -w 10080 --web-user test --web-pass test

maidevが/usr/binに存在するなら、上記のようになります。 違う場所にあるならパスを書き換えます。

Laravelの設定

LaravelからMailDevを利用する際は、.envのMAIL_PORTにMailDevの起動時に指定したポートを設定します。

MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=10025

LaravelとMailDevが違うサーバーに存在する場合は、MAIL_HOSTの指定も変更します。

MAIL_DRIVER=smtp
MAIL_HOST=(MailDevが動作するサーバーのIPアドレス)
MAIL_PORT=10025

以上となります。
MailDevで快適な開発を!