PHP開発中、エラーログの収集と処理は非常に重要です。エラー情報をログファイルに書き込むことに加えて、可能な限り早く発見と処理の問題を容易にするために、エラー情報をメールアドレスに直接送信することを望んでいます。この記事では、PHPのERROR_LOG関数を介して指定されたメールボックスにエラーメッセージを送信する方法を紹介し、電子メール構成の関連コンテンツを詳細に説明します。
ERROR_LOGはPHPに組み込み機能であり、エラー情報を記録するためによく使用されます。その一般的な使用法には次のものがあります。
error_log(string $message, int $message_type = 0, string $destination = null, string $extra_headers = null): bool
$メッセージ:記録するエラーメッセージ。
$ message_type :一般的に使用されるログのタイプは次のとおりです。
0:システムログに書き込みます(デフォルト)
1:メールを送信します
3:ファイルに書き込みます
$宛先: $ message_typeが1または3の場合、ここでメールアドレスまたはファイルパスを指定します。
$ extra_headers : fromなどのヘッダー情報を電子メールで送信します。
ERROR_LOGを送信するために、キーは$ message_typeを1に設定し、電子メールアドレスとして$ destionnを提供することです。
サンプルコード:
<?php
// エラーメッセージ
$error_message = "这是一个测试エラーメッセージ,で起こった:" . date('Y-m-d H:i:s');
// 使用 error_log メールを送信します
error_log($error_message, 1, "[email protected]", "From: [email protected]\r\n");
?>
このコードで:
エラーメッセージ$ error_messageタイムスタンプ付きエラーが生成されます。
error_log [email protected]にメールを送信します。
電子メールヘッダーは、送信者を[email protected]として指定します。
注:実際のドメイン名は、ここでgitbox.netに置き換えられ、要件を満たしています。
コードは簡単ですが、電子メールを正常に送信できるかどうかは、サーバーの電子メール環境構成によって異なります。
PHPは、 sendmailを使用して、linux/unixサーバーでデフォルトで送信して、 sendmailがサーバーにインストールされて構成されていることを確認します。
php.iniには、通常、次の設定があります。
sendmail_path = /usr/sbin/sendmail -t -i
Windows環境では、 SMTPサーバーを構成する必要があります。
[mail function]
SMTP = smtp.gitbox.net
smtp_port = 25
sendmail_from = [email protected]
外部SMTPを介して電子メールを送信する場合、PHPの組み込みERROR_LOGは、SMTPユーザー名とパスワードの構成を直接サポートしていません。これは、phpmailerやswiftmailerなどのサードパーティのメールライブラリを使用することをお勧めします。
スパムと見なされないように、正しい送信者メールを構成します。
サーバーSMTPサービスが正常であり、電子メールを送信できることを確認してください。
電子メールの送信をテストして、 ERROR_LOGによって送信された電子メールが受信トレイに到達できるようにします。
電子メールコンテンツをフォーマットして、過度に長いまたは役に立たない情報を避けます。
php error_log関数を使用してエラーメールを送信することは非常に簡潔です。主な手順は次のとおりです。
$ message_typeを1に設定します。つまり、メールで送信されます。
受信者のメールボックス$宛先を指定します。
特にfrom 、メールヘッダー$ extra_headersを構成します。
サーバーメール環境が正常であることを確認してください(SendMailまたはSMTP)。
例:
<?php
error_log("エラーが発生しました,時間:" . date('Y-m-d H:i:s'), 1, "[email protected]", "From: [email protected]\r\n");
?>
このようにして、PHPエラーメールをできるだけ早く受信することができます。これにより、問題の迅速な位置決めが容易になり、プロジェクトの品質と安定性が向上します。