Maison > développement back-end > tutoriel php > [PHP] La fonction mail() échoue lors de l'envoi d'emails (commande sendmail et postfix)

[PHP] La fonction mail() échoue lors de l'envoi d'emails (commande sendmail et postfix)

little bottle
Libérer: 2023-04-05 22:00:01
avant
2706 Les gens l'ont consulté

1. La fonction mail() de PHP peut envoyer des e-mails, mais elle n'a jamais été testée avec succès. Résumons maintenant les raisons :

La fonction mail de PHP est basée sur la commande sendmail, qui doit être installée. logiciel postfix

2. Vérifiez l'élément de configuration php sendmail_path, qui est la commande sous-jacente appelée par la fonction mail, php -i|grep sendmail

3. . Installer Seul le logiciel postfix peut utiliser la commande sendmail, apt-get install postfix

Une fois l'installation du logiciel terminée, testez s'il peut être envoyé avec succès sur la ligne de commande

Créez un texte eml. fichier, le contenu est le plus Les principaux en-têtes du protocole de messagerie


Subject: title-testing
From: shihan2@sopans.com
To: 630892807@qq.com
Sorry, I'm testing. ~_~
Copier après la connexion


 /usr/sbin/sendmail -t -i -f shihan2@sopans.com < 2.eml
Copier après la connexion

Ce qui suit le paramètre -f correspond à la valeur de, si Si la valeur de ne correspond pas, une erreur sera signalée. Vous pouvez vérifier le fichier journal /var/log/mail.log pour voir la cause de l'erreur et si elle a réussi

<🎜. >

Si la valeur de ne correspond pas, le journal affichera des informations rapides

Les informations correspondantes après un envoi réussi, 250ok

4. Modifiez le fichier de configuration php, utilisez la fonction PHP pour envoyer des emails

J'ai modifié ce fichier de configuration, /etc/php/7.0/cli/php.ini , et le paramètre from est écrit à mort Pendant le test, si vous n'écrivez pas ceci à partir de l'adresse e-mail, l'envoi échoue toujours, demandant la syntaxe 501 : MAIL FROM :
(en réponse à la commande MAIL FROM)) , le mail de et la lettre de ne correspondent pas

Vérifiez Configuration

Créer un fichier php


<?php
$to=&#39;630892807@qq.com&#39;;
$subject = &#39;测试一下&#39;;
$message = &#39;我来测试&#39;;
$headers[] = &#39;From: shihan2@sopans.com&#39;;
mail($to, $subject, $message, implode("\r\n", $headers));
Copier après la connexion
Test réussi

Tutoriels associés :

Un ensemble complet de vidéos tutoriels sur la programmation PHP de l'entrée au master

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:cnblogs.com
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal