訪問者が500エラーページをヒットしたときに、ウェブマスターに自動メールを送信することは可能ですか?


10

訪問者が500内部サーバーエラーページにアクセスしたときに、リクエストされたページの詳細を含む自動メールをウェブマスターに送信することはできますか?

そうすれば、Webマスターは問題を解決するためにより迅速に行動できます。これは一般的な質問なので、どのプラットフォームを使用するかは関係ありません。


1
使用できる(希望する)Webサーバーソフトウェアと言語を追加してください。(apache、nginx、iis、php、asp)ので、人々はあなたにスクリプトの例を示すことができます。
jflaflamme 2012年

回答:


7

はい、可能です。WebサーバーがIISかApacheかを確認する必要があるだけで、500のたびにカスタムページ(ユーザーから必要な詳細をキャプチャして電子メールで送信するコードを含む)を表示するように設定できます。エラーが発生しました。

たとえば、Apacheの場合、それは非常に簡単です。a .htaccessを作成(または、存在する場合は追加)し、その中で次のルールを使用して、カスタムエラードキュメントを設定します。

ErrorDocument 500 /error-docs/500.php

そして今nginxのために?:)
rogerdpack

2
@ rogerdpack、error_page
Bluebaron

7

カスタムエラーページを介してすべてのエラーでメールを送信しても、PHP関連の問題の場合は機能しない可能性があります。カスタムページも実行されないため、メールが送信されない可能性があります。また、洪水になる可能性のあるエラーごとに1つのメールが届きます。

代わりに、何らかの形式のログスキャンを実装することをお勧めします。cronジョブ(またはWindowsでスケジュールされたタスク)でログファイルを毎日または数時間ごとにスキャンして、最後のチェック以降に見つかったすべての概要を関連する管理者に送信します。 (s)。パラノイアのためだけに、ログチェックスクリプトでWebサーバーサービス(およびデータベースサービスなど)が実行されていることを確認するなど、他のいくつかのことを実行することもできます。他に何もない場合は、レポート期間ごとに1つのメールで、他のHTTPエラーコード(401、404など)や、ログで見つかったその他のものをカバーできます。これを行う場合は、何も問題がなくても常に電子メールメッセージを送信します。これにより、メッセージの取得を停止したためにスキャンスクリプトが実行に失敗したかどうかを確認できます(そうしないと、メッセージがまったく表示されないか ダメージレポートマシンが破損している)。


あるいは、フックとユーザー定義関数をサポートする(または他の方法で電子メールを送信できる)Perlスクリプトまたはデータベースにログエントリを書き込む(またはパイプする)ことで、Apacheのログプロセスに直接フックすることもできます。カスタムモジュールを使用してApacheログイベントをインターセプトすることもできます。
Lèseはmajesté

賛成、私はあなたの答えが本当に賛成に値するに値すると思います。それは実用的な解決策です。
ALH、2012年

4

はい、エラーごとにメールを送信します。また、メールの一部としてできるだけ多くの情報を送信することをお勧めします。つかむことを考えてください:

  • フォームコレクションの内容
  • すべてのセッション変数、
  • ブラウザのユーザーエージェント文字列
  • Cookieの値
  • クエリ文字列パラメータを含むページURL

これはデバッグの目的で非常に役立ちます。RequestオブジェクトとSessionオブジェクトを介してこの情報を従来のASPおよびASP.NETで取得するのは簡単です。

カスタムエラーページでエラーが発生しないようにしてください。そうしないと、Webサーバーがおかしくなります。


3

はい、可能です。電子メールを除き、Webサーバーのログも確認できます。

500ごとにメールを送信しないことをお勧めします。そうしないと、バグがあるとメールボックスがいっぱいになります。エラーIDを記録し、同じIDの同じエラーに対して1を送信します。


私の見解では、問題が発生したときに電子メールを受信すると、Webサーバーのログを定期的に確認する代わりに、Webマスターの作業が少し楽になると思います。1メールのアイデアの良い点。賛成投票!
Tony Bolero

ありがとう。私はASPを使用していましたが、ASPはエラーコードを取得し、それとページのURLを使用し、一意のキーを作成してメモリに保存しました。アプリの再起動)。メールはそれほど多くありませんが、エラーを追跡するには十分です。(ところで、この方法でも404を追跡できますが、最近はボットからの404エラーが多すぎます)
Eric Yin

-1

他のサーバーからphpをロードするiframeを追加すると、エラーページは常にメールを送信します。


1
なぜiframeなのですか?理由がよくわかりません。
アンドリュー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.