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で快適な開発を!