ホームページ > バックエンド開発 > PHPチュートリアル > MailCatcherでデバッグを電子メールで送信します

MailCatcherでデバッグを電子メールで送信します

Jennifer Aniston
リリース: 2025-02-21 11:15:09
オリジナル
445 人が閲覧しました

MailCatcherでデバッグを電子メールで送信します

アプリケーションでメールを使用していますよね? OK、それは修辞的な質問です。もちろんあなたはそうします。メールは30年以上前の電子メールにもかかわらず、依然として地球上で最も人気のあるアプリケーションです。 Pingdomのいくつかの統計は、2012年:

です
  • 22億 - 世界中の電子メールユーザーの数
  • 1,44億 - 世界中の1日あたりの総電子メールトラフィック
  • 43億 - 2012年の世界中の電子メールクライアントの数

驚異的!

キーテイクアウト

  • MailCatcherは、実際に実際のアドレスに電子メールを送信することなく、アプリケーションで電子メール機能をテストできる開発者にとって便利なツールです。送信されたメッセージをキャッチし、Webインターフェイスに表示する単純なSMTPサーバーを実行します。
  • MailCatcher Web UIはシンプルで効果的で、電子メールをキューにリストし、それらに関する詳細情報を提供しています。これは、コードが必要に応じて機能し、メール送信ワークフローが正しく機能していることを確認するための優れた方法です。
  • MailCatcherのセットアップでは、仮想マシンまたはLinuxマシンにインストールし、MailCatcherサーバーにメールを送信するようにアプリケーションを構成することが含まれます。この記事では、このプロセスの詳細な指示とサンプルコードを提供します。
  • MailCatcherは、生産環境で使用するために設計されていないことに注意することが重要です。これは、ローカル開発環境で使用することを目的とした開発ツールです。生産環境でそれを使用すると、電子メールやその他の問題が失われる可能性があります。
  • しかし、なぜ電子メールに関する別の記事ですか?
  • 1つの簡単な理由で、私たち全員がある時点で捕らえられた可能性があります。できる限り生産に近いテストする必要があるため、クライアントに偶然にメールを送信することなく、その結果、クライアントが混乱したりイライラしたりするか、クライアントがテストメールを受け取ったことを恥ずかしく思うからです。

私が何を意味するのか知っていると確信しています。アプリケーションをある種のデバッグモードに設定したと思います。それを考えると、テストを開始し、アプリケーションから大量のメールを送信します。その間、あなたは誰もそれらを見ることができるという知識に満足していると感じています。

あなたのテストが合格し、あなたは自分自身を祝福し、先に進みます。しばらくして、あなたはむしろ、クライアントからのSkype Callを

terse

と言ってみましょう。彼女は顧客が鳴り響き、なぜ彼らが彼女の会社から奇妙な電子メールを受け取っているのかを尋ねるので、彼女はかなりイライラしています。彼女は幸せではなく、答えが欲しいですか?

そこにいましたか?二度とそこにいたくないですか?そうではないと思います。これがソリューションです - MailCatcher。あなたがそれに慣れていないなら、mailcatcher

…Webインターフェイスに表示するために送信されたメッセージをキャッチする超単純なSMTPサーバーを実行します。 MailCatcherを実行し、お気に入りのアプリを設定して、デフォルトSMTPサーバーの代わりにsmtp://127.0.0.1:1025に配信してから、http://127.0.0.1:1080をご覧ください。

良い解決策のように聞こえますか?疲れていても、プレッシャーの下で、チームで新しく、またはテストを実行する必要がある場合でも、MailCatcherは、ネットワークの外側、または開発仮想マシンの外側でもメールが送信されないようにします。

この投稿では、メールがキャプチャされたときにインターフェイスを設定して実行する方法を紹介します。

事前に準備された仮想マシン

MailCatcherをセットアップするのに多くのトラブルを節約するために、私はあなたのためにそれをすべて行うカスタムVagrantボックスを作成しました。 VirtualBoxとVagrantがインストールされていることを確認してから、次のコマンドを使用して記事のリポジトリのコピーをクローンしてください。

次に、クローン化されたプロジェクトディレクトリで、次のコマンドを実行します。

これにより、仮想マシンプロビジョニングプロセスが起動し、プロビジョニングプロセスが実行されると非常に多くの出力が表示されます。構成された仮想マシンは非常にミニマリストです。 MailCatcher <span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>、

sendmail

vagrant up
ログイン後にコピー
ログイン後にコピー
nginx

がインストールされています。 nginxには、仮想マシンに/var/www/にプロジェクトディレクトリをマップする単純なvhostセットアップがあります。プロビジョニング中に何が起こるかを正確に知りたい場合は、Checkout Provision.sh。 MailCatcherを手動でインストールします MailCatcherを自分でインストールする場合、仮想マシン(または使用可能なLinuxマシン)がある場合は、実行する手順は次のとおりです。

3番目のコマンドを実行する必要がある場合とない場合があります。 MailCatcherを構築するにはパッケージが必要な非常にミニマリストのUbuntu Precise 64 Vagrant画像を使用しているので、私はしました。別のLinux配布またはバージョンを使用している場合は、個々のパッケージ名が異なる場合があることに注意してください。

注:標準のMailCatcherスタートアッププロセスに従うと、IP 127.0.0.1とポート1025でのみリッスンします。このセットアップでは、ホストマシンからは表示されませんでした。そこで、Virtual Machine 192.168.56.111にパブリックIPを追加し、すべてのIPSに耳を傾けるMailCatcherの構成を変更しました。

MailCatcher Web UI

http://192.168.56.111:1080でMailCatcher Web UIを見ることができます。以下の画像のように見えます:
<span>sudo apt-get install -y vim curl python-software-properties lynx nginx
</span><span>sudo apt-get install -y php5-fpm php5-memcache memcached php-apc
</span><span>sudo apt-get install -y build-essential libsqlite3-dev ruby1.9.3
</span><span>sudo gem install mailcatcher
</span><span>sudo mailcatcher --http-ip 0.0.0.0</span>
ログイン後にコピー
ログイン後にコピー

これは非常にシンプルなインターフェイスで、MailCatcherキューにメールを上部にリストします。リストにメールがある場合、下部のペインはそれらについての情報を表示するのに適した仕事をしますが、後で表示されます。

サンプルコード

この記事では、プロジェクトリポジトリで入手可能、http://192.168.56.111で簡単なPHPスクリプトindex.phpを作成しました。 SwiftMailerを使用してMailCatcherに接続し、ロード時にメールを送信します。かなり標準のHTMLページの下のコードで見ることができます。

Mail-Roader.phpが含まれています。これには、以下に入手できます
<span>git clone git@github.com:sitepoint-examples/mailcatcher-article.git</span>
ログイン後にコピー

SwiftMailer AurelioのSitePointの記事に精通していない場合は、優れた紹介を提供します。ちなみに、この例に使用したのは彼のコードです。 Aurelioに感謝します。

vagrant up
ログイン後にコピー
ログイン後にコピー
基本的に、私たちが注意することが重要な行は1つだけです。これは次のとおりです。

これにより、設定したばかりのMailCatcherサーバーへの接続が作成されます。それだけです、派手なものはありません!私は今、ページを3回リロードしましたが、3回のメールが送信されました。以下の画像のMailCatcherに記載されていることがわかります。

<span>sudo apt-get install -y vim curl python-software-properties lynx nginx
</span><span>sudo apt-get install -y php5-fpm php5-memcache memcached php-apc
</span><span>sudo apt-get install -y build-essential libsqlite3-dev ruby1.9.3
</span><span>sudo gem install mailcatcher
</span><span>sudo mailcatcher --http-ip 0.0.0.0</span>
ログイン後にコピー
ログイン後にコピー

最初のエントリをクリックしました。これは、電子メールの本文と同様に、受信、from、and、および件名の詳細を示しています。下の画像のように、ソースタブに切り替えた場合、生の電子メールの詳細を見ることができます:

MailCatcherでデバッグを電子メールで送信します

3番目のタブを介して、Fractalを使用して電子メールのコンテンツを分析できます。この記事の範囲を超えているので、今日はそれをスキップします。

私たちはすべてMailCatcherでデバッグを電子メールで送信しますに設定されています

それが完了したので、私たちはそうでなければメールを作成し、受信者、被写体、添付ファイルなどを設定し、上記のように、実際に実際のアドレスに行くことはないことを知っています。

テストを作成して、コードが必要に応じて機能することを確認できます。メールの送信ワークフローを確認し、メッセージの内容、受信者、ヘッダーなどを確認できます。実際に私たちの環境の外に何かを送ることなく、それは実用的です。

今では、クライアント(およびそのクライアント)が、意図したことのないメールを受け取っていないことを安心させることができます。なんて安心だ。

ラッピング

今、これはかなり些細な例であり、例として単純なSwiftMailerコードスニペットを使用するだけです。あなたのコードベースは、この例よりもはるかに複雑で洗練されていると確信しています。

しかし、アプリケーションでは、デバッグとテストの構成が利用可能であると確信しています。そこでは、それに応じてホストとポートを設定して、ライブと区別できます。そうすることで、他のコードを変更する必要はありません。MailCatcherがもたらす心の平和の利点を享受できます。

すでにmailcatcherを使用していますか?それを統合した経験は何ですか?あなたが気づいていない問題はありましたか?コメントであなたの考えを共有してください。

mailcatcher

に関するよくある質問

システムにmailcatcherをインストールするにはどうすればよいですか?

​​

mailcatcherのインストールは簡単です。まず、システムにRubyとRubyemsがインストールされていることを確認する必要があります。これらの前提条件を取得したら、ターミナルにコマンドGEMインストールMailCatcherを実行してMailCatcherをインストールできます。インストールが完了したら、ターミナルでコマンドMailCatcherを実行してMailCatcherを開始できます。これで、http:// localhost:1080でmailcatcher webインターフェイスにアクセスできるようになりました。

MailCatcherを使用するようにアプリケーションを構成するにはどうすればよいですか? MailCatcherのSMTPサーバーをポイントするアプリケーションのSMTP設定。サーバーはLocalHostで実行され、ポート1025でリッスンします。これらの値を設定する正確なプロセスは、アプリケーションの言語とフレームワークに依存しますが、一般的には、SMTPアドレスを「LocalHost」に、SMTPポートを1025に設定する必要があります。 '。

生産環境でMailCatcherを使用できますか?

​​

MailCatcherは、生産環境で使用するために設計されていません。これは、ローカル開発環境で使用することを目的とした開発ツールです。生産環境でMailCatcherを使用すると、電子メールが失われたり、その他の問題が発生したりする可能性があります。実稼働環境の場合、堅牢で生産対応のSMTPサーバーを使用する必要があります。

MailCatcherでアプリケーションから送信された電子メールを表示するにはどうすればよいですか?

MailCatcherを使用するように設定し、 MailCatcherサーバーを開始しました。アプリケーションから送信されたメールは、MailCatcherによってキャッチされ、Webインターフェイスに表示されます。 Webブラウザーでhttp:// localhost:1080に移動することにより、このインターフェイスにアクセスできます。ここでは、MailCatcherがキャッチしたすべてのメールのリストが表示されます。任意のメールをクリックしてその内容を表示できます。

MailCatcherからのメールをクリアするにはどうすればよいですか? MailCatcher Webインターフェイスの[クリア]ボタンをクリックするのと同じくらい簡単です。これにより、インターフェイスからすべてのメールが削除されます。電子メールがクリアされたら、回復することはできません。

dockerでmailcatcherを使用できますか? MailCatcherを含むDocker画像があります。また、DockerセットアップにMailCatcherを含める独自のDockerFileを作成することもできます。 MailCatcherをDockerコンテナで実行する場合、アプリケーションがMailCatcher SMTPサーバーに接続できるように、適切なポートが公開されるようにする必要があります。

MailCatcherの問題をトラブルシューティングするにはどうすればよいですか?

​​ MailCatcherで問題が発生した場合、最初のステップは、端末の出力をエラーメッセージで確認することです。これらのメッセージは、多くの場合、何が間違っているのかについての手がかりを提供できます。メールの送信に問題がある場合は、アプリケーションのSMTP設定がMailCatcherのSMTPサーバーを指すように正しく構成されていることを確認してください。複数のプロジェクトを備えたMailCatcher。各プロジェクトが同じSMTPサーバー(つまり、MailCatcherのSMTPサーバー)に電子メールを送信するように構成されている限り、MailCatcherはこれらすべてのプロジェクトから電子メールをキャッチします。

MailCatcherを起動した端末でCtrl Cを押すと、MailCatcherサーバーを停止できます。または、MailCatcherをバックグラウンドプロセスとして開始した場合、Command Killall MailCatcherを実行して停止できます。 MailCatcher WebインターフェイスのFeelは、箱から出してカスタマイズできません。ただし、MailCatcherはオープンソースであるため、ソースコードを変更してインターフェイスをカスタマイズする可能性があります。これには、MailCatcherが構築されているRubyとSinatra Webフレームワークを十分に理解する必要があることに注意してください。

以上がMailCatcherでデバッグを電子メールで送信しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート