- MailCatcherは、シンプルなSMTPサーバーを起動し、受信したメールをWebインターフェースで表示するツール。
- メールを smtp://127.0.0.1:1025 に送信するよう設定し、http://127.0.0.1:1080 で受信したメールを確認できる。
- 主な機能
- すべてのメールを受信して保存し、HTML、プレーンテキスト、ソース版を表示する。
- HTMLを書き換え、埋め込み画像やリンクを新しいウィンドウで開けるようにする。
- 添付ファイル一覧を提供し、個別ダウンロードをサポートする。
- 元のメールをダウンロードして、標準のメールクライアントで閲覧できる。
- コマンドラインオプションで、デフォルトのSMTP/HTTPのIPおよびポート設定を変更できる。
- WebSocketsをサポートするブラウザーではメールが即座に表示され、そうでない場合は30秒ごとに更新される。
- バックグラウンドでデーモンとして実行でき、フォアグラウンドでも実行可能。
- PHPで使いやすくするためのsendmail互換コマンド
catchmail を提供する。
- メッセージ間のキーボードナビゲーションをサポート。
- インストールと使い方
gem install mailcatcher コマンドでインストールでき、mailcatcher コマンドで実行する。
- メールを smtp://127.0.0.1:1025 に送信し、http://127.0.0.1:1080 で確認する。
- コマンドラインオプションは
mailcatcher --help で確認できる。
- Bundler と RVM
- GemfileにMailCatcherを追加せず、READMEに使い方を記載することが推奨される。
- RVMを使う場合は、専用のgemsetにインストールしてgemの競合を防ぐことが推奨される。
- Rails と PHP の設定
- Railsでは
environments/development.rb にSMTP設定を追加して使う。
- PHPでは
php.ini またはApache設定で sendmail_path を設定して使う。
- Django の設定
- Djangoでは
settings.py にメール設定を追加して使う。
- API
- RESTfulなURLスキーマを通じて、JSON形式でメッセージ一覧をダウンロードできる。
- 注意事項
- メール処理機能は基本的なもので、必要に応じて修正できる。
- UTF-8エンコーディングを完全にはサポートしていないため、適切なメールライブラリを使う必要がある。
- 今後の計画
- リクエスト時にメール送信機能を追加。
- CampaignMonitorのデザインガイドラインおよびCSSサポートマトリクスに対する互換性テスト。
1件のコメント
Hacker Newsの意見
このツールは便利だが、メンテナンスは停止されている。MailHogも同様。現代的な代替としては MailPit、MailCrab、smtp4dev がある
メンテナーは現在あまり多くの作業をしていない。ツールが完成しているからだ。改善の余地は多いが、機能を大きく向上させるものではない。問題が発生すれば修正する
MailPit は Go で書かれており、単一の静的バイナリとして実行でき、リソース使用量が非常に少ない。積極的にメンテナンスされている
ローカル開発環境で SMS メッセージを捕捉する同様のツールを探している。会社では Mailtrap をメールプレビュー用ツールとして使っており、Twilio 経由で送信する SMS メッセージ向けにも同様のツールを探している。Twilio Dev Phone というプロジェクトはあったが、現在はメンテナンス停止状態だ
このツールは開発用であり、成熟した状態にある。直近 1 年以内に Git の活動もあった。特定の機能が重要なら、プルリクエストを送るか、開発のための寄付を検討できる
最近 smtp4dev を使い始めた。ローカル開発向けの "mailtrap" 問題は、すでに解決済みの問題だと考えている。docker-compose ファイルに追加するのに 15 分と 10 行のコードが必要だったが、うまく動作している。Docker/Podman 経由でサービス設定が非常に簡単だ
Rails アプリ開発で Mailcatcher を使っており、とても簡単に使える。他に何か必要だとは思わない。@sj26 と協力者たちに感謝する
MailCatcher を使っていたが、Arm マシンに移行した際に問題が発生した。現在は Mailpit を使っており、設定は少し複雑だ。MailCatcher が Arm の問題を解決したようなので、再び戻るかもしれない
smtp-sink を長く使っていたが、チームが CLI より GUI ツールを好むため Mailcatcher を見つけた。安定していて、うまく動作する
$ smtp-sink -u nobody -R /tmp/smtp-sink -d "maildir/%Y-%m-%d/mail.%H.%M." 127.0.0.1:25 1024こうしたツールの一般的な用途は、メールを送信する他のアプリケーションのテストだ。他にも用途があるのか気になる