Confirmation d'inscription par mail PHP

Résolu
Bonjour,

J'ai créé un formulaire d'inscription qui ammène à une page de traitement des informations rentrées par le visiteur, si ces informations sont incorrectes, un message apparait et marque l'erreur, ou si tout est correcte, le visiteur va recevoir un lien d'activation sur son mail pour qu'il puisse confirmer son inscription. Mon soucis est que le visiteur ne reçoit pas mon mail de confirmation, donc je ne vois pas ou se trouve la ou les erreurs. Voici mon code à partir du moment ou il n'y a pas d'erreur de la part du visiteur :

else
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=sitesql', 'root', '', $pdo_options);

$req = $bdd->prepare('INSERT INTO formulaire(nom, prénom, pseudo, e_mail, password, question_secrète, réponse_secrète, adresse, cp, ville, région, tel, date_naij, date_naim, date_naia) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');

$req->execute(array($_POST['nom'], $_POST['prénom'], $_POST['pseudo'], $_POST['e_mail'], $_POST['password'], $_POST['question_secrète'], $_POST['réponse_secrète'], $_POST['adresse'], $_POST['cp'], $_POST['ville'], $_POST['région'], $_POST['tel'], $_POST['date_naij'], $_POST['date_naim'], $_POST['date_naia']));

// Récupération des variables nécessaires au mail de confirmation
$e_mail = $_POST['e_mail'];
$pseudo = $_POST['pseudo'];

// Génération aléatoire d'une clé
$cle = md5(microtime(TRUE)*100000);

// Insertion de la clé dans la base de données
$stmt = $bdd->prepare("UPDATE formulaire SET cle=:cle WHERE pseudo like :pseudo");
$stmt->bindParam(':cle', $cle);
$stmt->bindParam(':pseudo', $pseudo);
$stmt->execute();

// Préparation du mail contenant le lien d'activation
$destinataire = $e_mail;
$sujet = "Activer votre compte" ;
$entete = "From: inscription@monsite.com" ;

// Le lien d'activation est composé du pseudo(pseudo) et de la clé(cle)
$message = 'Bienvenue sur Intelli-vente,

Pour activer votre compte, veuillez cliquer sur le lien ci dessous
ou copier/coller dans votre navigateur internet.

http://127.0.0.1/Site/Page2/activation.php?pseudo='.urlencode($pseudo).'&cle='.urlencode($cle).'

---------------
Ceci est un mail automatique, Merci de ne pas y répondre.';

mail($destinataire, $sujet, $message, $entete) ; // Envoi du mail

header('Location: ../page1.php');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>

La clé est effectivement inséré comme il le faut dans la base de donnée, donc je pense que l'erreur intervient juste après...

3 réponses

  1. C'est bon c'est résolu, j'ai enfin trouvé.
    Il fallait modifier la ligne "sendmail_from = you@yourdomain" de (php.ini) en la remplaçant par mon adresse e-mail "sendmail_from = monadresse@email.fr".
    Et la tout fonctionne.
    Merci quand même pour votre aide.
    2
    1. Une ligne dans le message que tu veux envoyé ne doit pas dépasser les 70 caractères, donc tu doit utilisé un saut de ligne:

      $message = wordwrap($message, 70);


      Juste avant:
      mail($destinataire, $sujet, $message, $entete) ; // Envoi du mail 


      Une autre chose concernant l'entête, ça doit être comme ça:

      $entete = 'From: inscription@monsite.com' . "\r\n" .
          'Reply-To: inscription@monsite.com' . "\r\n" .
          'X-Mailer: PHP/' . phpversion();
      0
      1. Merci pour ta réponse l3ajib,

        J'ai suivi tout tes conseils mais aucun message dans la boite de réception.
        0
      2. essai de récupérer la valeur de retour de la fonction mail pour voire qu'est ce que ça va donner:

        $ok=mail($destinataire, $sujet, $message, $entete); 
        echo $ok;
        0
      3. Je dois remplacé mail($destinataire, $sujet, $message, $entete) ; par le code que tu m'a donné?
        0
      4. si c'est ça, toujours pas de mail dans la boite de réception.
        0
      5. et sur la page qu'est ce que tu as comme message ? (contenu de $ok)
        0
    2. Contributeur
      La fonction mail est desactivée sur ton serveur, tu es chez qui?
      0
      1. Je suis sur le serveur WAMP et j'utilise Notepad++. Il y a une solution pour l'activé?
        0