Page 1 sur 1

Envoi d'un mail de confirmation

Posté : 27 nov. 2013, 13:54
par Sombwich
Bonjour,

Je suis en train de (tenter de) coder une newsletter pour mon site.

Pour s'inscrire, j'ai installé un formulaire sur une page où l'on entre son adresse mail.
L'action envoi à la page suivante (post.php) où :
* une clef d'activation est générée,
* l'adresse mail est intégrée dans une base de donné
* un mail de confirmation est envoyé à l'adresse entrée par l'utilisateur afin qu'il puisse valider (via un lien).

Voici le code de ma page post :
<?php

$clef = md5(microtime(TRUE)*100000);
$email = $_POST['email'];

try
{
    $bdd = new PDO('mysql:host=localhost;dbname=monsite', 'login', 'password');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
 
$req = $bdd->prepare('INSERT INTO mailnews (email, clef) VALUES(?, ?)');
$req->execute(array($_POST['email'], $_POST['clef']));

$to = $email;
$subject = 'Newsletter de monsite';
$message = "<p>Bonjour,<br>
Pour confirmer votre inscription &agrave; la newsletter de monsite, merci de cliquer sur le lien ci-dessous ou de le copier/coller dans votre navigateur :<br>
<a>http://monsite.com/news/activation.php?log='.urlencode($email).'&clef='.urlencode($clef).'</a></p>
<br><p>Ceci est un message automatique, merci de ne pas y r&eacute;pondre.</p>";
$headers = "From: \"monsite News\"<[email protected]>"."\r\n".
			"Reply-To: [email protected]"."\r\n".
			"Content-Type: text/html; charset=\"iso-8859-1\"";
if(mail($to,$subject,$message,$headers))
{
	header('Location: index#up');
}
else
{
		echo "Une erreur c'est produite lors de l'inscription de votre adresse, merci de <a href=\"index\">r&eacute;essayer.</a>";
}
?>
J'ai tenté plusieurs modifications du code mais rien n'y fait : à chaque fois que je tente de m'inscrire, je reçois le message d'erreur.

Quelqu'un aurait-il une idée du ou des problèmes empêchant ce code de fonctionner correctement ?
Merci !

Re: Envoi d'un mail de confirmation

Posté : 28 nov. 2013, 22:12
par moogli
Salut,


Si tu test ce code sous Windows c'est possible que tu es une erreur.

As tu des erreurs dans le log php ?


@+