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
little bottleavant
2019-04-17 14:29:382739parcourir

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. ~_~


 /usr/sbin/sendmail -t -i -f shihan2@sopans.com < 2.eml

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 : 208700f394e4cf40a7aa505373e0130b (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));
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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer