Fonction mail php sur une machine Linux
Bonjour,
Je souhaiterai envoyé un mail de récupération de mot de passe via un formulaire PHP.
Cependant, l'envoi de mail ne s'effectue pas. Faut-il installer des packages spécifiques ? J'utilise la fonction d'envoi de mail basique de php :
- http://www.w3schools.com/php/php_mail.asp
Voici le code si ça peut aider :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| if (isset($_POST['send'], $_POST['email']))
{
print "TEST\n";
$mdp = genererMDP(8);
$nbRows = $bdd->query('SELECT count(*) FROM config_users WHERE email ="' . $_POST['email'] .'" ')->fetchColumn();
if ($nbRows == 1 && preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
{
$sql = 'UPDATE config_users SET password = "' . $mdp . '" WHERE email ="' . $_POST['email'] .'" ';
$q = $bdd->prepare($sql);
$q->execute(array($mdp, $_POST['email']));
$to = $_POST['email'];
$sujet = "Récupération de mot de passe";
$corps = "Bonjour, \n\r\n\r Voici un mot de passe temporaire qu'il vous faudra changer dans les plus brefs délais !\n\r\n\r
Mot de passe : $mdp.\n\r\n\r
Cordialement,\r\n\r\n
Les admins CQuest";
$emetteur = "From: loic.savoye@orange.com";
if (@mail($to, $sujet, $corps, $emetteur))
{
echo 'Le mail contenant votre mot de passe a été envoyé.';
}
else
{
echo 'Echec de l\'envoi du mail.';
}
}
else
{
echo 'L\'adresse mail n\'est pas enregistrée dans la base de données !';
}
} |
Je suis allé voir dans les logs et j'ai cette erreur :
stat = Deferred: Connection refused by [127.0.0.1]
C'est le localhost qui bloque l'envoi des mails du coup ? Si oui quelle est la config à modifier ?
J'ai appliqué cette commande : sudo chkconfig --levels 235 sendmail on...
Du coup nouvelle erreur :
SYSERR(apache) : savemail: cannot save rejected email anywhere
Je viens du forum PHP !
Cdlt