La colonne suivante du Tutoriel WordPress vous présentera comment résoudre le problème « Votre hébergeur a désactivé la fonction Mail » lors de l'envoi d'e-mails dans WordPress, j'espère que ce sera le cas. soyez utile à vos amis dans le besoin !
Problème spécifique
Récemment, alors que je cherchais des bugs de sujet, j'ai découvert un phénomène très intéressant, qui est le problème des paramètres de la boîte aux lettres SMTP, les réponses aux commentaires peuvent être envoyées de manière anormale, mais il n'y a pas de demande de révision. Lors de la récupération par e-mail, l'erreur suivante apparaît :
Impossible d'envoyer l'e-mail.
Raison possible : Votre hébergeur a désactivé la fonction mail().
Détecter si la fonction mail est désactivée
Utilisez la sonde PHP pour détecter si la fonction mail est désactivée par le fournisseur d'hébergement.
Le code de la sonde PHP est le suivant, enregistrez-le sous forme de fichier php, téléchargez-le sur le serveur et ouvrez-le pour le tester :
<!--?php if (function_exists('mail')) { echo "支持mail()函数!"; } else echo "不支持mail()函数!"; ?-->
Solution
À l'origine, je pensais qu'il s'agissait d'une balance. La fonction mail() a été désactivée par l'hôte Tian, mais il a été découvert grâce à la sonde PHP qu'elle n'était pas désactivée.
Ce qui suit fournit des solutions au problème de désactivation de la fonction de messagerie malgré la désactivation et la prise en charge de la fonction de messagerie. C'est mon expérience personnelle. Ne laissez personne trébucher ici.
Solution permettant à l'hôte de désactiver la fonction de messagerie
Grâce à la sonde PHP ci-dessus, s'il s'avère que l'hôte a désactivé la fonction de messagerie, utilisez directement SMTP pour envoyer du courrier au lieu de l'original mail function
Soumettez le code de paramètre de boîte aux lettres SMTP utilisé ici (l'exemple est le paramètre de boîte aux lettres de blog) et jetez-le simplement dans Functions.php.
function mail_smtp( $phpmailer ){ $phpmailer->From = “lijie@php2.cc”; //发件人 $phpmailer->FromName = “PHP二次开发”; //发件人昵称 $phpmailer->Host = “smtp.ym.163.com”; //SMTP服务器地址 $phpmailer->Port = 25; //SMTP端口,常用的有25、465、587,具体谷歌百度 $phpmailer->SMTPSecure = “”; //SMTP加密方式,常用的有SSL/TLS,具体谷歌百度 $phpmailer->Username = “lijie@php2.cc”; //邮箱帐号 $phpmailer->Password = *; //邮箱密码(缙哥哥就用星号代替了) $phpmailer->IsSMTP(); //使用SMTP发送 $phpmailer->SMTPAuth = true; //启用SMTPAuth服务 } add_action(‘phpmailer_init’,’mail_smtp’);
L'hébergeur prend en charge la solution de la fonction mail
Si le test prend en charge la fonction mail, regardez ci-dessous :
Comme je n'avais auparavant que l'e-mail de l'administrateur du test, j'ai essayé plus tard pour enregistrer un nouvel utilisateur, en utilisant la fonction de récupération du mot de passe par email, l'e-mail a été envoyé normalement sans aucune surprise.
Ensuite, j'ai changé mon compte de messagerie SMTP en 163 et j'ai utilisé l'e-mail de l'administrateur pour récupérer le mot de passe. Le résultat a été reçu normalement sans aucune surprise.
Enfin, c’est clair. Il s’avère que l’adresse email de réception et l’adresse email d’envoi ne peuvent pas être la même. Ce résultat m'a surpris. Il est en fait apparu dans un si petit lien. J'ai pensé qu'il s'agissait d'un problème de thème et j'ai modifié le code plusieurs fois. Désolé, mais cela a également corrigé un BUG majeur. Lancer, pourquoi s'embêter à lancer si vous êtes jeune ?
Mais ceci dit, depuis que j'ai changé la boîte aux lettres 163, j'ai reçu beaucoup d'avis, de réponses aux commentaires et de rappels par e-mail d'inscription dans la boîte aux lettres 163. Est-ce aussi ennuyeux que je puisse le faire seul ? La boîte aux lettres d'un administrateur est utilisée comme boîte aux lettres sortante, ce qui peut réduire efficacement le nombre d'e-mails reçus, et désormais les oreilles sont silencieuses.
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!