xpatval Posté 5 Novembre 2004 Partager Posté 5 Novembre 2004 (modifié) Bonjour tt le monde, Suite à un post répondant à une autre question sur le forum html css, l'un d'entre nous, pourvoyeurs de questions/réponses sur le ube, pardon, hub, me proposait une fonction d'envoi de mail html. Bien. Mais deux questions me vous pose-je ( c'est français, ça?): 1- à partir de cela: function mail_html($destinataire, $sujet , $messtxt, $messhtml , $from){.....return mail($destinataire, $sujet, $texte_simple.$texte_html, $entete);} Je suis royalement infoutu (je sais, je suis limité), de récupérer les messages d'erreurs éventuels, dans le script appelant la fonction !! Le script précédent la modif (c-a-d avant l'ajout de l'appel à cette fonction) le faisait très bien, mais je suis complètement paumé avec le return. Et je procédais de la sorte: ini_set("track_errors",1);if(! _AT_mail($to, $subject, $message, $en_tete)) $err_mess = "Erreur lors de l'envoi du mail: <em>". $php_errormsg ."</em>";else $err_mess = "Votre message a été envoyé."; Ma deuxième question concerne l'envoi du mail en lui-même. En effet, lorsque je teste, et donc récupère le mail avec mon client mail, je me retrouve avec un fichier .txt joint, et vide. le code des entêtes est celui-ci: function mail_html($destinataire, $sujet , $messtxt, $messhtml , $from) { $limite = "_parties_".md5 (uniqid (rand())); $entete = "Reply-to: $from\n"; $entete .= "From:$from\n"; $entete .= "Date: ".date("l j F Y, G:i")."\n"; $entete .= "MIME-Version: 1.0\n"; $entete .= "Content-Type: multipart/alternative;\n"; $entete .= " boundary=\"----=$limite\"\n\n"; //Le message en texte simple pour les navigateurs qui //n'acceptent pas le HTML $texte_simple = "This is a multi-part message in MIME format.\n"; $texte_simple .= "Ceci est un message au format MIME.\n"; $texte_simple .= "------=$limite\n"; $texte_simple .= "Content-Type: text/plain; charset=\"US-ASCII\"\n"; $texte_simple .= "Content-Transfer-Encoding: 7bit\n\n"; $texte_simple .= $messtxt; $texte_simple .= "\n\n"; //le message en html original $texte_html = "------=$limite\n"; $texte_html .= "Content-Type: text/html; charset=\"US-ASCII\"\n"; $texte_html .= "Content-Transfer-Encoding: 7bit\n\n"; $texte_html .= $messhtml; $texte_html .= "\n\n\n------=$limite\n"; return mail($destinataire, $sujet, $texte_simple.$texte_html, $entete); } J'ai remplacé le charset US par un charset iso-8859-1. Quelqu'un voit-il d'où cela peut provenir ? merci, xpatval Modifié 5 Novembre 2004 par xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vincent Posté 5 Novembre 2004 Partager Posté 5 Novembre 2004 le return ci dessous va te retourner un booleen. (nb : remarque le @ qui evite d'envoyer des messages d'erreurs intempestifs a ton visiteur lambda) return _AT_mail($destinataire, $sujet, $texte_simple.$texte_html, $entete); il faut donc a l'appel de ta fonction que tu test le booleen qui t'es retourné du genre : ini_set("track_errors",1);if(! mail_html($to, $subject , $messtxt, $messhtml , $en_tete)) $err_mess = "Erreur lors de l'envoi du mail: <em>". $php_errormsg ."</em>";else $err_mess = "Votre message a été envoyé."; Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 5 Novembre 2004 Auteur Partager Posté 5 Novembre 2004 Suffisait juste de le dire, et hop !! Merci, xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant