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 : Sélectionner tout - Visualiser dans une fenêtre à part
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