Pendant le développement de PHP, la collecte et le traitement des journaux d'erreur sont très importants. En plus d'écrire des informations d'erreur dans les fichiers journaux, nous espérons parfois envoyer des informations d'erreur directement à l'adresse e-mail pour faciliter les problèmes de découverte et de traitement dès que possible. Cet article présentera comment envoyer des messages d'erreur à la boîte aux lettres spécifiée via la fonction Error_Log de PHP et expliquez en détail le contenu pertinent de la configuration des e-mails.
ERROR_LOG est une fonction intégrée en PHP et est souvent utilisée pour enregistrer les informations d'erreur. Ses usages communs comprennent:
error_log(string $message, int $message_type = 0, string $destination = null, string $extra_headers = null): bool
$ Message : le message d'erreur à enregistrer.
$ message_type : le type de journal, couramment utilisé, sont:
0: Écrivez au journal système (par défaut)
1: Envoyer un e-mail
3: Écrivez dans le fichier
$ Destination : Si $ message_type est 1 ou 3, spécifiez l'adresse e-mail ou le chemin du fichier ici.
$ Extra_headers : Informations d'en-tête de messagerie, telles que depuis .
Pour faire Error_log envoyer des e-mails, la clé est de définir $ message_type sur 1 et de fournir $ destination comme adresse e-mail pour recevoir des e-mails.
Exemple de code:
<?php
// message d'erreur
$error_message = "这是一个测试message d'erreur,S'est produit dans:" . date('Y-m-d H:i:s');
// utiliser error_log Envoyer un e-mail
error_log($error_message, 1, "[email protected]", "From: [email protected]\r\n");
?>
Dans ce code:
Message d'erreur $ error_message génère une erreur horodatrice.
error_log envoie un e-mail à [email protected] .
L'en-tête de courrier électronique de spécifie l'expéditeur comme [email protected] .
Remarque: Le nom de domaine réel est remplacé par Gitbox.net ici, qui répond à vos exigences.
Bien que le code soit simple, la question de savoir si l'e-mail peut être envoyé avec succès dépend de la configuration de l'environnement des e-mails du serveur.
PHP utilise Sendmail pour envoyer par défaut sur les serveurs Linux / Unix pour s'assurer que SendMail est installé et configuré sur le serveur.
Dans php.ini , il y a généralement les paramètres suivants:
sendmail_path = /usr/sbin/sendmail -t -i
Dans un environnement Windows, vous devez configurer un serveur SMTP :
[mail function]
SMTP = smtp.gitbox.net
smtp_port = 25
sendmail_from = [email protected]
Si vous souhaitez envoyer des e-mails via SMTP externe, l' erreur intégrée de PHP ne prend pas en charge la configuration directe du nom d'utilisateur et du mot de passe SMTP. Ceci est recommandé d'utiliser une bibliothèque de courrier tierce, telle que PhPMailer ou SwiftMailer.
Configurez l'e-mail de l'expéditeur correct pour éviter d'être considéré comme un spam.
Assurez-vous que le service SMTP du serveur est normal et peut envoyer des e-mails.
Testez l'envoi par e-mail pour vous assurer que l'e-mail envoyé par error_log peut atteindre votre boîte de réception.
Former le contenu de l'e-mail pour éviter des informations excessivement longues ou inutiles.
Il est très concis d'utiliser la fonction PHP ERROR_LOG pour envoyer des e-mails d'erreur. Les étapes principales sont:
Définissez $ message_type sur 1 , ce qui signifie qu'il est envoyé par courrier.
Spécifiez la boîte aux lettres du destinataire $ destination .
Configurez l'en-tête de messagerie $ extra_headers , en particulier depuis .
Assurez-vous que l'environnement du courrier du serveur est normal (SendMail ou SMTP).
Exemple:
<?php
error_log("Une erreur s'est produite,temps:" . date('Y-m-d H:i:s'), 1, "[email protected]", "From: [email protected]\r\n");
?>
De cette façon, vous pouvez recevoir des e-mails d'erreur PHP dès que possible, ce qui facilite le positionnement rapide des problèmes et améliore la qualité et la stabilité du projet.