11 ポイント 投稿者 GN⁺ 2024-11-20 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2024-11-20
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 使用例: $ smtp-sink -u nobody -R /tmp/smtp-sink -d "maildir/%Y-%m-%d/mail.%H.%M." 127.0.0.1:25 1024
  • こうしたツールの一般的な用途は、メールを送信する他のアプリケーションのテストだ。他にも用途があるのか気になる