8796 sujets

Développement web côté serveur, CMS

Bonjour,

je travaille actuellement sur la zone membre de mon site. J'aimerais avoir l'inscription que le visiteur valide son inscription par mail.

Voici le script réalisé (j'ai simplifié le contenu du mail).


<?php
//$to = Adresse_Mail_Destinataire     
$to = $_POST["email"];
//$from = Adresse_Mail_Contact_site 
$from  = "Mon site <nepasrepondre@monsite.com>";

$sujet = "Validation de votre inscription";

$contenu = "";
$contenu .= "<html> \n";
$contenu .= "<head> \n";
$contenu .= "<title>Validation de votre inscription</title> \n";
$contenu .= "</head> \n";
$contenu .= "<body> \n";
$contenu .= "Mail dez test<br/> très simple \n";
$contenu .= "</body> \n";
$contenu .= "</HTML> \n";

$headers .= "MIME-Version: 1.0 \n";
$headers .= "Content-Transfer-Encoding: 8bit \n";
$headers .= "Content-type: text/html; charset=utf-8 \n";
$headers .= "From: $from \n";

$verif_envoi_mail = TRUE;

$verif_envoi_mail = @mail ($to, $sujet, $contenu, $headers, "contact@monsite.com");
 
if ($verif_envoi_mail === FALSE) echo ("Problème lors de l'envoie envoyé");

else echo ("Merci de votre inscription. Un email de confirmation va vous être envoyé."); 
?>


A l'exécution, aucun problème. La fonction mail fonctionne... mais le mail n'arrive jamais à destination, pas même dans la boite à spam... Smiley sweatdrop

Pour ceux qui voudraient tester le fonctionnement du script menant jusqu'à ce script : http://www.sylvaincharroy.fr/MuMe/inscription/form.php

Si quelqu'un à une idée...

Pour info, mon serveur est chez OVH
vraiment désolé... j'ai du merder en avec les balises, voici le script

<?php
//$to = Adresse_Mail_Destinataire     
$to = $_POST["email"];
//$from = Adresse_Mail_Contact_site 
$from  = "Mon site <nepasrepondre@monsite.com>";

$sujet = "Validation de votre inscription";

$contenu = "";
$contenu .= "<html> \n";
$contenu .= "<head> \n";
$contenu .= "<title>Validation de votre inscription</title> \n";
$contenu .= "</head> \n";
$contenu .= "<body> \n";
$contenu .= "Mail dez test<br/> très simple \n";
$contenu .= "</body> \n";
$contenu .= "</HTML> \n";

$headers .= "MIME-Version: 1.0 \n";
$headers .= "Content-Transfer-Encoding: 8bit \n";
$headers .= "Content-type: text/html; charset=utf-8 \n";
$headers .= "From: $from \n";

$verif_envoi_mail = TRUE;

$verif_envoi_mail = @mail ($to, $sujet, $contenu, $headers, "contact@monsite.com");
 
if ($verif_envoi_mail === FALSE) echo ("Problème lors de l'envoie envoyé");

else echo ("Merci de votre inscription. Un email de confirmation va vous être envoyé."); 
?>
Le code :

//$to = Adresse_Mail_Destinataire     
$to = $_POST["email"];
//$from = Adresse_Mail_Contact_site 
$from  = "Mon site <nepasrepondre@monsite.com>";

$sujet = "Validation de votre inscription";

$contenu = "";
$contenu .= "<html> \n";
$contenu .= "<head> \n";
$contenu .= "<title>Validation de votre inscription</title> \n";
$contenu .= "</head> \n";
$contenu .= "<body> \n";
$contenu .= "Mail dez test<br/> très simple \n";
$contenu .= "</body> \n";
$contenu .= "</HTML> \n";

$headers .= "MIME-Version: 1.0 \n";
$headers .= "Content-Transfer-Encoding: 8bit \n";
$headers .= "Content-type: text/html; charset=utf-8 \n";
$headers .= "From: $from \n";

$verif_envoi_mail = TRUE;

$verif_envoi_mail = @mail ($to, $sujet, $contenu, $headers, "contact@monsite.com");
 
if ($verif_envoi_mail === FALSE) echo ("Problème lors de l'envoie envoyé");

else echo ("Merci de votre inscription. Un email de confirmation va vous être envoyé."); 



Personnellement je ne mets jamais les balides html, head, body, etc. quand j'envoies un mail, as-tu essayé sans ?
Modifié par Skoua (05 Aug 2009 - 16:56)
Essayes ceci plutôt :


if(mail($to, $sujet, $contenu, $headers, "contact@monsite.com"))
{
echo 'Courriel envoyé';
}
else
{
echo 'Problème...';
}

Ensuite, avant d'envoyer ton mail, affiche les variables $to, $sujet, $contenu, $headers pour voir si elle ne sont pas vide.

Attention, ceci :


$to = $_POST["email"];


est potentiellement dangereux.
Modifié par Super_baloo8 (05 Aug 2009 - 18:52)
après avoir affiché les variables, je viens de me rendre compte que ma variable $to était vide -_- reste plus qu'à trouver pourquoi !

d'ailleurs, vu que $to = $_POST["email"] est potentiellement dangereux, que puis-je utiliser de plus sécurisé à la place ?

sinon, les mails envoyés depuis le site tombent dans le fillet anti-spam (testé avec Gmail et Hotmail). Quelqu'un a-t-il une solution pour éviter cela ?
Modifié par SylvainVV (05 Aug 2009 - 20:10)