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

藏色散人
Libérer: 2023-03-13 12:54:02
original
1527 Les gens l'ont consulté

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>
Copier après la connexion

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
Copier après la connexion

Configuration du fichier php.ini

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
; For Win32 only.
sendmail_from = atoat@163.com
Copier après la connexion

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal