Page 1 sur 1

fonction mail

Posté : 04 janv. 2012, 20:32
par medianeweb
Ca devrait pourtant marcher, mais je ne reçois jamais le mail.
Il s'agit d'un code pour les internautes qui auraient oublié leur mdp de connexion. J'ai donc fait un formulaire simple: entrez votre email, qui après validation, cherche le mdp + login dans la BD et envoie les données par mail au mail récupéré dans le formulaire.
Je récupère bien tout, j'ai tout bien fait (je crois), mais ça n'envoie pas le mail. Quelqu'un aurait une idée ?

Par avance, merci.

Ci dessous mon code :
<?
$email_personne = $_POST['email_saisi'];

$rech_personne = "SELECT MOT_DE_PASSE_PERSONNE, LOGIN_PERSONNE
FROM PERSONNE WHERE EMAIL_PERSONNE = '$email_personne'";
$res_rech_personne = mysql_query( $rech_personne );
$nb_personne = mysql_num_rows( $res_rech_personne );

if ( $nb_personne > 0 ){
while( $row_recherche = mysql_fetch_row( $res_rech_personne )) {

$login_personne = $row_recherche[0];
$mdp_personne = $row_recherche[1];
$message .= "Recuperation de vos codes de connexion : identifiant : ".$login_personne." / mot de passe : ".$mdp_personne;

$headers ='From: [email protected]'."\n";
$headers .= 'To: '.$email_personne."\n";
$headers .='Reply-To: [email protected]'."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
// echo $headers;
mail($email_personne, 'Vos codes de connexion', $message, $headers);

echo '<h3>Vos nouveaux codes de connexion vous ont &eacute;t&eacute; envoy&eacute; &agrave; l\'adresse '.$email_personne.'. V&eacute;rifiez votre boite email. Cela peut prendre quelques minutes. Si vous ne le recevez pas, v&eacute;rifiez votre boite de spam. A bient&ocirc;t sur pagescomediens.com.</h3>';


}
}


else{
$erreur = "Adresse email invalide.";

}
?>

Re: fonction mail

Posté : 04 janv. 2012, 23:18
par moogli
Salut,

À tu vérifier les valeurs que tu récupère dans la requête ?

À tu verifié dans le dossier spam ?

Essai avec une classe comme phpmailer si ça passe.


@+

Re: fonction mail

Posté : 05 janv. 2012, 10:59
par Shenryu
Salut,

Est-ce que ta sortie d'erreur est activée ? Sinon ajoute error_reporting(E_ALL | E_STRICT); en haut de ton script le temps de corriger.

Sinon tu as une erreur ligne 14.
$message .= "..." alors que ta variable n'est pas initialisée auparavant. Tu dois soit faire $message = "...", soit initialiser $message = "" et inclure ton texte derrière.

Essaye d'appeler ta fonction mail de manière toute simple pour commencer et de voir si tu reçois le mail.
mail($email, $subject, $message);

Re: fonction mail

Posté : 05 janv. 2012, 16:33
par medianeweb
Merci Shenryu pour ton message et l'erreur relevée !
J'ai fait comme t'as dit : corrigé l'erreur (d'ailleurs c'est bizarre que je n'ai pas eu de message d'erreur, appelé la fonction mail de manière toute simple et non ça ne marche toujours pas #-o
J'ai ajouté une sortie error_reporting(E_ALL | E_STRICT); mais ça ne me donne aucune info de plus, sinon que visiblement ma variable de session n'était pas utile. Soit, je l'ai retiré, et effectivement, ça ne change rien à l'exécution du scripte.

Moogle, oui, j'ai vérifié toutes les valeurs, et tout est ok de ce côté là. Evidemment, j'ai jeté un oeil dans mon dossier spam et non, rien non plus :(

J'aimerais ne pas avoir à faire appel à phpmailer, dans la mesure où j'utilise la fonction mail dans d'autres scripte et tout fonctionne normalement. Je suis jamais fan d'utiliser des classe quand on peut faire sans...

Vous auriez d'autres idées ?

Re: fonction mail

Posté : 05 janv. 2012, 16:53
par Mazarini
Tu peux tester le retour de la fonction mail :
If (mail(...)
{
   echo 'mail ok';
} 
else 
{
   echo 'mail ko';
} 

Re: fonction mail

Posté : 05 janv. 2012, 16:55
par Shenryu
Tu n'as pas d'autres erreurs ? Rien dans la log de php ou d'apache ?

Re: fonction mail

Posté : 05 janv. 2012, 17:09
par medianeweb
Tu peux tester le retour de la fonction mail :
If (mail(...)
{
   echo 'mail ok';
} 
else 
{
   echo 'mail ko';
} 

Bonne idée, j'ai essayé. Alors, la bonne nouvelle, c'est qu'il me dit "Mail ok" ! Bon, je reçois toujours pas le mail, mais c'est ce qu'il me dit !
Ca pourrait vouloir dire quoi ?

@Shenryu :
Je n'ai a priori aucune autre erreur... Ou alors bien cachée !
Concernant le log de php ou d'apache, par contre, pardon de mon ignorance, comment je vérifie ?