Maison >développement back-end >Problème PHP >Comment résoudre le problème d'erreur de messagerie php

Comment résoudre le problème d'erreur de messagerie php

藏色散人
藏色散人original
2021-10-20 11:42:041532parcourir

Solution à l'erreur de messagerie php : 1. Ajoutez l'adresse IP locale dans l'option relais du service SMTP ; 2. Faites un mappage de port sur la passerelle et mappez le port 25 à la machine locale.

Comment résoudre le problème d'erreur de messagerie php

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

Comment résoudre le problème d'erreur de messagerie php ?

Problème d'erreur de fonction php mail()

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>phpinfo</title>
</head>
<body>
<?
$to = "atoat@sina.com";
$subject = "php-Mail";
$msg = "I completely understand SMTP servers now!";
$headers = "From: atoat@163.com/r/nReply-To: atoat@163.com";
mail("$to", "$subject", "$msg", "$headers");
echo "finished!";
?>
</body>
</html>

Erreur :

Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for atoat@sina.com in C:/webserver/htdocs/www/mail.php on line 14

Configuration du fichier php.ini

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
; For Win32 only.
sendmail_from = atoat@163.com

A installé le service smtp fourni avec Windows

Après avoir longuement cherché, j'ai découvert que je devais utilisez le service smtp Ajoutez l'adresse IP locale dans l'option relais

Serveur virtuel->Propriétés->Accès->Relais

Sélectionnez "Uniquement la liste suivante" => "Ordinateur unique" => Ajouter 127.0.0.1 Il n'y a pas de problème avec l'adresse locale

Il n'y a pas de problème avec le programme, mais le message n'est pas reçu immédiatement dans la boîte de réception

La raison pour laquelle je ne l'ai pas reçu est que ma machine est sur le réseau interne et ne peut pas le faire. envoyer des e-mails au réseau externe.

Solution :

Réalisez un mappage de port sur la passerelle et mappez le port 25 à la machine locale. Ou la machine a une adresse IP publique.

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn