8795 sujets

Développement web côté serveur, CMS

Pages :
Bonjour, Je me heurete à un petit problème. Je tente d'envoyer un email html avec css a un utilisateur.

Ce courriel contient aussi un formulaire <form> avec un bouton submit relié à paypal. Mon probèlme est que avec mon encodage mime dans mon head, seul hotmail tient compte du html. Outlook se contente d'afficher toutes les balises; donc le lis pas le html.

Seconde problème, sur hotmail, mon bouton submit ne fonctionne pas. Il apparait simplement en image.

Je vous montre mon code, espérant que vous puissiez me guider. Je crois que le problàme viens de mon entete mais je n'arrive pas à trouver ce que c'est. C'est surement possible à faire puisque ebay utilise un système semblable.

Mon forumlaire (il est a l'intérieur des balise html et body...):



<form action='https://www.paypal.com/cgi-bin/webscr' method='post'>
<input type='hidden' name='cmd' value='_xclick'>
<input type='hidden' name='business' value='info@xxxx.com'>
<input type='hidden' name='item_name' value='Commande #$val[no_com]'>
<input type='hidden' name='currency_code' value='CAD'>
<input type='hidden' name='amount' value='$_SESSION[prixtot]'>
<input type='hidden' name='shipping' value='$val[prix_trans]'>
<input type='hidden' name='no_shipping' value='1'>
<input type='image' src='http://www.paypal.com/en_US/i/btn/x-click-but01.gif' name='submit' alt='Cliquez-ici pour payer avec paypal'>
</form></p><p />


Le code du email avec son entete

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n". "Content-Transfer-Encoding: 7bit". "\r\n";
$headers = 'From: x@x.com' . "\r\n" .'Reply-To: info@xx.com' . "\r\n";
  mail("$mail", "Commande", $message_html, $headers);

Modifié par L-0sWald (27 Oct 2005 - 01:56)
Bonjour,
A tout hasard, essaie de supprimer l'espace après les deux points, et de memttre le T de type dans Content-type en majuscule.
C'est rien, mais ça peut tout changer pour outlook.
L-0sWald a écrit :

Le code du email avec son entete

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n". "Content-Transfer-Encoding: 7bit". "\r\n";
$headers = 'From: x@x.com' . "\r\n" .'Reply-To: info@anger-distribution.com' . "\r\n";
  mail("$mail", "Commande", $message_html, $headers);

Tu as oublié un point devant le 3e signe '=', donc les en-têtes définies précédemment sont écrasées :
$headers .= 'From: x@x.com' . "\r\n" .'Reply-To: info@anger-distribution.com' . "\r\n";
J'ai corrigé le problème de la concaténation. Pour une raison inexpliquée, quand j'envoie le mail avec l'entete mail le serveur le bloque et je ne le recoit pas sur mes comptes test. (outlook et hotmail)

Si j'eanleves la partie du MIME et du content type de $headers le email s'envoie sans problème. Sauf que le html n'Est pas décodé et il s'affiche carrément dans la page.




$messagex = "Hey";
$message_html = '
	<html><head><title>Commande Anger</title></head>
	<body bgcolor="#000000">'.$messagex."</body></html>";


$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: commande@anger-distribution.com'. "\r\n".'Reply-To: info@anger-distribution.com'."\r\n";

mail("nspad@hotmail.com, jb@pastgraphism.net", "Commande Anger", $message_html, $headers);


J'ai contacté l'hébergeur pour lui demander si les courriel mime avaient été désactivés du serveur et il me dit que non. J'y comprend rien Smiley confused
Il n'y aurait pas quelque part un anti-spam qui ferait du zèle ?

Et si tu enlèves seulement l'en-tête "MIME-Version" en laissant le "Content-Type" ça bloque aussi ?
C'est l'envoie qui bloque je crois. Car le serveur a envoyé ce message au récipent principal :

a écrit :

problem was found in an Email message you sent.
This Email scanner intercepted it and stopped the entire message
reaching its destination.

The problem was reported to be:

Disallowed characters found in MIME headers


Please contact your IT support personnel with any queries regarding this
policy.


Your message was sent with the following envelope:

...
Modifié par L-0sWald (24 Oct 2005 - 23:04)
C'est peut-être les retours à la ligne qui buggent... essaie avec \r\n et avec \n pour être sûr.
ben didonc, j'ai exactement le même soucis..
c'est vraiment très chiant..

j'ai réussi à enlever les <br> gràce à une fonction php, mais sinon je peut pas par exemple mettre d'image, ou alors mettre en gras, italique..

c'est embétant!
Pourtant c'est bizarre, j'ai jamais eu de problème d'envoi de mail avec les en-têtes de cette forme :

Content-Type:text/html; charset=iso-8859-1
From:***** <****@****.***>
QuentinC a écrit :
C'est peut-être les retours à la ligne qui buggent... essaie avec \r\n et avec \n pour être sûr.

Je confirme qu'il faut imperativement vérifier ça ! En effet, j'ai eu le même problème et le simple changement de fin de ligne l'a résolut ! Il faut donc utiliser les fin de ligne UNIX (\n) pour eviter tout problème (même si les différente RFC normalisant les format des mail disent le contraire !).
Waow! tu me sauves la vie ! même mon hébergeur n'avait pas vu la solution, je n'ai eu qu'à changer mes retour de lignes \r\n par \n.

Merci beaucoup !!! Smiley biggrin Smiley biggrin Smiley biggrin
Comme quoi ça doit beaucoup dépendre de l'hébergeur, moi j'ai toujours mis \r\n et ça a toujours passé...
L-0sWald a écrit :
Bonjour, Je me heurete à un petit problème. Je tente d'envoyer un email html avec css a un utilisateur.

Ce courriel contient aussi un formulaire <form> avec un bouton submit relié à paypal. Mon probèlme est que avec mon encodage mime dans mon head, seul hotmail tient compte du html. Outlook se contente d'afficher toutes les balises; donc le lis pas le html.


J'aimerais bien avoir un retour des destinataires de l'email en html et css, savoir comment ils l'ont reçu, lu le message, y a t-il eu des erreurs, avaient-ils toutes les infos accessibles.

Si mise en page il y avait les destinataires l'on t-ils tous vu. Enfin plein de retours d'expériences qu'il serait bon d'avoir. En particulier: une petite étude sur les différents webmails les plus utilisés, les clients de messagerie les plus utilisés serait du plus grand intérêt.

Un mail html-css-web-flash-svg-etc. est-il le plus approprié pour communiquer ?

L'important ce n'est pas ce qui est envoyé mais ce qui est reçu Smiley murf .

En somme css est-il un langage adpaté au mail ?
j'ai essayé de faire la même chose avec le même type de header, et chez moi ca ne marche pas, je recois un mail vide!

comment ca se fait?

je sais pas si c'est ca qu'il falait faire, mais dans le $header, j'ai transformé les \r\n en \n ..

c'etait ca que tu avais fait ou alors j'ai mal compris?
oui, c'est bien ce que j'ai fait.


$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$headers .= 'From: commande@xx'. "\n".'Reply-To: info@anger-distribution.com'."\n";

Modifié par L-0sWald (27 Oct 2005 - 01:56)
néopeak.

cela dit, c'était la première fois que je rencontrais un tel problème avec la fonction mail. avant, j'étais hébergé à différentes endroits autre que celui la.
Pages :