Problème mail html envoyé via php

Fermé
Ben - 30 juil. 2009 à 00:17
 Samy - 30 juil. 2009 à 15:46
Bonjour à tous,

J'ai fait des tas de recherches jusqu'alors, sur votre forum, ou sur d'autres sites. J'ai également testé des tas de synthaxes différentes y compris celle donnée sur php.net, mais sans succès.

Voila mon problème, j'ai un formulaire de demande de devis sur le site que je crée, et je veux que l'entreprise reçoive cette demande de devis sous une forme bien présentée, en HTML sans caractères spéciaux qui s'affichent bizarrement, mais rien a faire je n'obtiens jamais de résultat propre.

Voici mon script PHP :

<?php
$to = 'monmail@mail.com';

$devis_html = $_POST['devis'];
$genre = $_POST['genre'];
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$societe = $_POST['societe'];
$adresse=$_POST['adresse'];
$cp = $_POST['CP'];
$ville = $_POST['ville'];
$pays = $_POST['pays'];
$tel = $_POST['tel'];
$mail = $_POST['mail'];
$nbs = $_POST['nbre_salaries'];
$service = $_POST['service'];
$sectact = $_POST['secteur_activite'];

$header = "From: \"Formulaire Devis\"<".$mail.'>'."\n";
$header .= 'Reply-to: \"JML\" <XX@XXXXXXXX.fr>'."\n";
$header .= 'MIME-Version: 1.0' . "\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\n";

$boundary = '-----='.md5(rand());

$sujet = 'Demande de devis (Site Internet)';


$devis = '<html><head></head><body>'.$genre.' '.$nom.' '.$prenom.', '."\n";
$devis .= 'Societe : '.$societe."\n";
$devis .= 'Service : '.$service."\n";
$devis .= $adresse."\n";
$devis .= $cp."\n";
$devis .= $ville."\n";
$devis .= $pays."\n";
$devis .= "\n".'Infos Supplementaires : '."\n";
$devis .= 'Nombre de Salaries : '.$nbs."\n";
$devis .= 'Secteur d\'activite : '.$sectact."\n";
$devis .= 'Tel : '.$tel."\n";
$devis .= 'E-Mail : '.$mail."\n";
$devis .= "\n".$devis_html.'</body></html>'."\n";


mail($to, $sujet, $devis, $header);

header('location: merci_d.htm');
exit;

?>


Tous se passe bien, le script s'éxécute sans problème, mais voila, ce que je reçois n'est pas du tout ce qui est demandé :


Monsieur TEST ben, Societe : XXX Service : Bureau_etudes 5 lot le ville 05459 france Infos Supplementaires : Nombre de Salaries : 20-49 Secteur d'activite : Agro_Agri Tel : 0953458525 E-Mail : i.n@livre.ru TESTTESTDEMANDEDEVISéà ¨ùê


Je précise que je remplis le formulaire avec des infos bidons et des accents pour avoir tous les points de vue sous le nez.
J'ai également un autre soucis, quand je soumet mon formulaire sous firefox, celui ci éxécute bien le script alors que sous internet explorer, celui ci m'ouvre une boite de dialogue avec les options "Ouvrir", "Enregistrer", "Annuler".

J'aurais donc 2 questions :

Comment faire pour avoir un mail en HTML, sans soucis d'encodage (j'ai testé en mettant ISO-8859-1 et en UTF-8, même resultat) pour n'avoir aucune balise affichée, un mail propre quoi :) ?

Comment faire pour qu'Internet explorer éxécute le script (IE 7.0) ?

Le site n'étant pas encore en ligne, je teste mes pages et script a l'aide de Wamp 2.0, avec un php.ini bien configuré.

Merci a tous de vos réponses, que j'espere positives, j'ai été pris par le temps, et j'aimerais avoir une solution d'ici demain soir si possible.

Bonsoir à tous !
A voir également:

27 réponses

Les histoires de codage c'est horrible j'essaye en ce moment de faire un flux rss que je lis par iphone et le validateur est pas content a cause d'une histoire d'encodage des carractère T_T j'suis un pti stagiaire de 20ans j'ai le droit a l'erreur xD

bon alors je dirais a vu de nez de faire comme ca :

<?php
$to = 'monmail@mail.com';

$devis_html = $_POST['devis'];
$genre = $_POST['genre'];
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$societe = $_POST['societe'];
$adresse=$_POST['adresse'];
$cp = $_POST['CP'];
$ville = $_POST['ville'];
$pays = $_POST['pays'];
$tel = $_POST['tel'];
$mail = $_POST['mail'];
$nbs = $_POST['nbre_salaries'];
$service = $_POST['service'];
$sectact = $_POST['secteur_activite'];

$header = "From: \"Formulaire Devis\"<".$mail.'>'."\n";
$header .= 'Reply-to: \"JML\" <XX@XXXXXXXX.fr>'."\n";
$header .= 'MIME-Version: 1.0' . "\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\n";

$boundary = '-----='.md5(rand());

$sujet = 'Demande de devis (Site Internet)';


$devis = '<html><head></head><body>'.$genre.' '.$nom.' '.$prenom.', '."\n";
$devis .= 'Societe : '.$societe."\n";
$devis .= 'Service : '.$service."\n";
$devis .= $adresse."\n";
$devis .= $cp."\n";
$devis .= $ville."\n";
$devis .= $pays."\n";
$devis .= "\n".'Infos Supplementaires : '."\n";
$devis .= 'Nombre de Salaries : '.$nbs."\n";
$devis .= 'Secteur d\'activite : '.$sectact."\n";
$devis .= 'Tel : '.$tel."\n";
$devis .= 'E-Mail : '.$mail."\n";
$devis .= "\n".$devis_html.'</body></html>'."\n";


mail($to, $sujet, utf8_encode($devis), $header);

header('location: merci_d.htm');
exit;

?>



si ca marche pas montre l'erreur que tu as =o
0
Tu sais moi, je suis un jeune con de 17 ans, qui a juste fait une année de DUT Informatique et qui fait le site internet d'une société d'amis hein ^^"...

en copiant exactement le code que tu m'a donné, j'obtiens :

Monsieur fezfze fezfzefe, Societe : fezfze Service : Commercial fezfzeééé zafdzadédéd dé"dzédézd fez Infos Supplementaires : Nombre de Salaries : 50-99 Secteur d'activite : Services Tel : 1891641846 E-Mail : fezfze@fezfz.fr Veuillez taper votre demande de devis iezfzeci..
0
Il te manque toujours le
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> dans ton mail... Je ne sais plus comment le dire
0
Excuse moi le père, j'ai essayé de suivre les conseils de Samy qui me disait de virer ce que j'avais dans le head. Je vais réessayer en laissant tel quel et en rajoutant la meta quand meme.

Merci beaucoup.
0
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 975
30 juil. 2009 à 14:40
lol ne te tire pas une balle le père ^^


notre curé te dis de faire ca:


$devis = '<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head><body>'.$genre.' '.$nom.' '.$prenom.', '."\n";
0
C'est exactement ce que je viens de faire, alors je vous remet le script et l'email reçu :

Script :
<?php 
$to = 'XXX@XXXXXX.fr'; 

$devis_html = $_POST['devis']; 
$genre = $_POST['genre']; 
$prenom = $_POST['prenom']; 
$nom = $_POST['nom']; 
$societe = $_POST['societe']; 
$adresse=$_POST['adresse']; 
$cp = $_POST['CP']; 
$ville = $_POST['ville']; 
$pays = $_POST['pays']; 
$tel = $_POST['tel']; 
$mail = $_POST['mail']; 
$nbs = $_POST['nbre_salaries']; 
$service = $_POST['service']; 
$sectact = $_POST['secteur_activite']; 

$header = "From: \"Formulaire Devis\"<".$mail.'>'."\n"; 
$header .= 'Reply-to: \"JML\" <XX@XXXXX>'."\n"; 
$header .= 'MIME-Version: 1.0' . "\n"; 
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\n"; 

$sujet = 'Demande de devis (Site Internet)'; 


$devis = '<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body>'.$genre.' '.$nom.' '.$prenom.', '."\n"; 
$devis .= 'Societe : '.$societe."\n"; 
$devis .= 'Service : '.$service."\n"; 
$devis .= $adresse."\n"; 
$devis .= $cp."\n"; 
$devis .= $ville."\n"; 
$devis .= $pays."\n"; 
$devis .= "\n".'Infos Supplementaires : '."\n"; 
$devis .= 'Nombre de Salaries : '.$nbs."\n"; 
$devis .= 'Secteur d\'activite : '.$sectact."\n"; 
$devis .= 'Tel : '.$tel."\n"; 
$devis .= 'E-Mail : '.$mail."\n"; 
$devis .= "\n".$devis_html.'</body></html>'."\n"; 


mail($to, $sujet, utf8_encode($devis), $header); 

header('location: merci_d.htm'); 
exit; 

?> 



Mail :
Monsieur fezfze fezfze, Societe : fezfze Service : Bureau_etudes fezfez fezfze fezfez fezf Infos Supplementaires : Nombre de Salaries : 1-19 Secteur d'activite : Armement Tel : 081561589 E-Mail : buifezfz@fezfze.fr Veuillez taper votre demanfazefaééde de devis ici..
0
Aucune amélioration, j'ai même perdu les passages a la ligne...
Au moins les balises html ne s'affichent plus tel quel, mais il me faut maintenant du passage a la ligne, et surtout des caractères correctement encodé...

Je voudrais abuser encore un peu de votre générosité en solicitant mon aide.. je dois présenter la plupart des fonctionnalités du site ce soir, et si j'ai un mail mal affiché comme ça, ça va pas le faire..

D'autres idées ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
@le père :

Tout mon site est en UTF-8 oui ;), ce ISO-8859-1 venait d'un tuto que j'avais copié collé a l'aveugle comme un vulgaire novice.
Je viens de remettre l'utf-8 à l'endroit ou tu m'a dit de le mettre, les accents marchent =D !

Par contre, les passages a la ligne sont toujours perdus...

Un enorme merci pour les accents déjà =).
0
+1 le père ca marche sans souci sans utf8_encode, de plus je pensais pas du tout a cette fonction a vrai dire (c'est mes récent scripts que j'ai fais pour donner a manger a flash qui m'ont troublé) mais plutot a html_entity()...
0
Oui, je vais laisser sans aucune fonction tant que mes accents continuent de s'afficher =).

Merci beaucoup a toi aussi Samy,

Maintenant, reste a savoir comment récuperer mes passages a la ligne.

Je rappelle que tout arrive sur le webmail orange ou sur outlook 2007 configuré sur l'adresse orange.
0
De rien ! bonne continuation =)

(pour le résolu je sais pas :p )

bye !
0