LaravelでMailCatcherを利用してテストメールを送信する
2017/01/30
こんにちは、okutani(@okutani_t)です。今回は、Laravelで便利にテストメールをおこなう「MailCatcher」の使い方を解説します。
この「MailCatcher」はLaravel以外でも利用できるので、仕組みが分かればRuby on Railsなどでもかんたんに使うことができます。
公式サイトは以下です。
LINKMailCatcher
本記事は、以下の記事を参考にしています(というより、ララ帳さんまんま……です )。
参考MailCatcherを使ったメール送信テスト – ララ帳
MailCatcherを動作させるにはRuby1.8以上が必要です。Mac・linuxではrbenvを使ってRubyの導入ができます。以下を参考にしてください。
Windowsは、以前Sassの導入時にrubyのインストールについて解説しています。導入部分だけでも参考にしてみてください。
前準備が済んだら、MailCatcherのインストールから、使い方まで順を追ってみていきましょう。
スポンサーリンク
MailCatcherのインストール
MailCatcherはRubyのRubyGemsで管理されているので、gemコマンドで導入します。
以下コマンドをターミナル(もしくはコマンドプロンプト)から入力。
$ gem install mailcatcher
導入確認。
$ mailcatcher --version
mailcatcher 0.6.5
MailCatcherが導入されました。
MailCatcherの起動
次のコマンドでデーモンとして実行します。
$ mailcatcher
MailCatcherは、「SMTP → IPアドレス127.0.0.1、ポート番号1025」「Web画面 → IPアドレス127.0.0.1、ポート番号1080」として立ち上がります。
Web画面はポート1080で確認できます。以下のURLでブラウザでアクセスしてみましょう。
http://127.0.0.1:1080
もし、Vagrantなどの仮想環境を利用している場合は「http://仮想環境のIP:1080」などでアクセスできます。
次のような画面が出ればOKです。
MailCatcherがきちんと立ち上がっていることが確認できました。
メール送信先の設定
LaravelでMailCatcherを利用できるように設定していきます。
.envファイルの該当箇所を、次のように変更。
MAIL_DRIVER=smtp
MAIL_HOST=127.0.0.1
MAIL_PORT=1025
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=your_address@gmail.com
MAIL_FROM_NAME=your_name
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_PRETEND=false
これで、Laravelから送信するメールがMailCatcherに届くようになります。
tinkerでテストメール送信
以下のコマンドでメールを送信してみましょう。
$ php artisan tinker
Psy Shell v0.4.4 (PHP 5.6.24 — cli) by Justin Hileman
>>>
続けて以下を入力。
Mail::raw('Test Mail', function($message) { $message->to('somebody@example.com')->subject('test'); });
これで、コンソール上に1が返ってくればOKです。
MailCatcherのWeb画面を確認してみましょう。
上図のように、テストメールが送られていることが確認できました。
もし、MailCatcherを停止させたい場合は、Web画面右上の「Quit」をクリックすればOKです。
MailCatcherはIPとポート番号さえ一致させれば、Laravel(PHP)以外のツールや言語で利用できます。
メールは環境によってテストしにくかったりするので、MailCatcherのような便利ツールを使って効率よく開発できるとよいですね。
Laravelでテストメールを送るときの参考になれば幸いです。
Web開発のお仕事を募集しています
フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。
「Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。
ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。
LINKお問い合わせ
スポンサーリンク