OVH Community, votre nouvel espace communautaire.

probleme envoi avec php mail()


ddavid
01/06/2012, 11h18
@philtr :

Bonjour,

Je n'ai pas jeté un coup d'oeil un temps suffisant à votre script pour identifier le problème, mais votre script est très problématique.

Vous prenez en effet du contenu défini via $_POST, et vous le concaténez, sans filtrage/vérification aux en-têtes de l'email... Ce n'est pas sans risque... Comment êtes vous sur qu'un petit malin ne va pas ajouter des entêtes supplémentaires via un champ bizarrement rempli ?

Gaston_Phone
31/05/2012, 16h54
Peux-tu essayer ce petit script :

Code PHP:
   // Test fonction mail();

   // *** A configurer

   
$to    "Adresse_Mail_Destinataire";  
   
$from  "Adresse_Mail_Contact_site";  // adresse MAIL OVH liée à ton hébergement.

   // *** Laisser tel quel

   
$JOUR  date("Y-m-d");
   
$HEURE date("H:i");

   
$Subject "Test Mail - $JOUR $HEURE";

   
$mail_Data "";
   
$mail_Data .= " \n";
   
$mail_Data .= " \n";
   
$mail_Data .= " Subject  \n";
   
$mail_Data .= " \n";
   
$mail_Data .= " \n";

   
$mail_Data .= "Mail HTML simple  :  $Subject    
 \n"
;
   
$mail_Data .= "
 \n"
;
   
$mail_Data .= "bla bla bla bla 
 \n"
;
   
$mail_Data .= "Etc.
 \n"
;
   
$mail_Data .= " \n";
   
$mail_Data .= " \n";

   
$headers  "MIME-Version: 1.0 \n";
   
$headers .= "Content-type: text/html; charset=iso-8859-1 \n";
   
$headers .= "From: $from  \n";
   
$headers .= "Disposition-Notification-To: $from  \n";

   
// Message de Priorité haute
   // -------------------------
   
$headers .= "X-Priority: 1  \n";
   
$headers .= "X-MSMail-Priority: High \n";

   
$CR_Mail TRUE;

   
$CR_Mail = @mail ($to$Subject$mail_Data$headers);
 
   if (
$CR_Mail === FALSE)   echo " ### CR_Mail=$CR_Mail - Erreur envoi mail 
 \n"
;
   else                      echo 
" *** CR_Mail=$CR_Mail - Mail envoyé
 \n"

Vous trouverez des compléments d'informations sur :
http://a-pellegrini.developpez.com/tutoriels/php/mail/
http://www.siteduzero.com/tutoriel-3...il-en-php.html (Envoi de MAIL avec Pièce-Jointe)

philtr
31/05/2012, 14h04
1) Le CONTEXTE
Un formulaire de contact avec 3 champs: "adresse Courriel", "Objet du message" et "votre Message". Rien de complique de ce cote. Le serveur est un serveur mutualise 90GP de chez OVH.

a) On remplit les champs de la maniere suivante (ci-dessous), AUCUN PROBLEME le message est envoye et recu:
---------------------------------------------------------------
"adresse courriel": mon-adresse@domaine.fr
"objet du message": ceci est l'objet de mon courriel
"votre message":
blablablablabla blablablablabla
---------------------------------------------------------------

b) On remplit les champs comme dans l"exemple precedent et on ajoute du texte a la suite du message precedent (ce texte comporte le mot "Subject").
---------------------------------------------------------------
"adresse courriel": mon-adresse@domaine.fr
"objet du message": ceci est l'objet de mon courriel
"votre message":
blablablablabla blablablablabla
----- Original Message -----
From: autreadresse@domaine1.com
To: mon-adresse@domaine.fr
Subject: objet message
blablablablabla
---------------------------------------------------------------

2) Le PROBLEME
Le message n'est pas envoye dans le cas b). Si on enleve le mot "Subject" le message est envoye et bien recu. Toute aide pour comprendre / expliquer / resoudre le probleme est bienvenue. D'avance merci. Ci-dessous le code PHP.


//-----------------------------------------------
//DECLARATION DES VARIABLES (provenant du formulaire de contact)
//-----------------------------------------------
$mail_from=$_POST['courriel'];
$mail_to='mon-adresse@domaine.fr';
$mail_reply=$_POST['courriel'];
$objet= $_POST['objet']);
$msg= $_POST['message'];

//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------
$headers = "MIME-Version: 1.0\n";
$headers .= "From: $mail_from \n";
$headers .= "Reply-To: $mail_reply \n";
$headers .= "Cc: $mail_reply\n";
$headers .= "X-Mailer: PHP\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "X-Priority: 1\n";

//-----------------------------------------------
// ELABORATION MESSAGE
//-----------------------------------------------
$message = "";
$message .= " \n";
$message .= " \n";
$message .= " Titre Message \n";
$message .= " \n";
$message .= "".$msg.""." \n";

if (mail($mail_to,$objet,$message,$headers))
{ echo 'envoi_ok'; }
else
{ echo 'envoi_non_ok'; }

?>