gvosnet Posted November 20, 2006 Share Posted November 20, 2006 Hello toutes et tous, Je planche depuis ce week-end sur un problème surement lié à Free...Mais je n'en suis pas complètement sûr donc j'aimerai avoir votre avis. Sur mon site (commercial, en PHP), j'ai fait une fonction d'envoi de mail (avec partie HTML et partie texte pour les messageries en ligne qui ne gèrent pas le html). Jusque là, tout va bien. La fonction envoie nickel les mails en HTML avec des liens et tout. Par contre, j'ai voulu dernièrement utiliser cette fonction pour effectuer un envoi de newsletter. Cette newsletter se compose d'images qui sont en fait des liens vers le site (classique quoi). C'est là que les ennuis commencent : impossible d'envoyer une image étant un lien dans l'email. Exemple : Si j'envoie ça, ça marche : <img src="http://www.monsite.fr/newsletter/image.gif" /> Si j'envoie ça, ça marche aussi : <a href="www.monsite.fr/ma_page.php">Lien vers ma page</a> Mais si j'envoie ça, ça foire (uniquement sur la messagerie Free, ça fonctionne très bien sur gmail ou autre par exemple...). C'est à dire que le mail n'arrive même pas dans la boite de réception Free : <a href="www.monsite.fr/ma_page.php"><img src="http://www.monsite.fr/newsletter/image.gif" /></a> J'ai aussi essayé d'envoyer l'email sur une messagerie Free dont l'anti-spam est désactivé et ça ne change rien. J'ai donc bien l'impression que c'est Free qui bloque l'e-mail, mais je n'arrive pas à savoir pourquoi... Si vous avez une solution, je suis preneur. Aux courageux, merci de m'avoir lu jusqu'ici :-) Au cas où, voici le code de ma fonction : function mail_html($destinataire, $sujet , $messtxt, $messhtml , $from) { $limite = "_parties_".md5 (uniqid (rand())); $entete = "Reply-to: $from\n"; $entete .= "From:$from\n"; $entete .= "X-Sender: <www.monsite.fr>\n"; $entete .= "X-Mailer: PHP\n"; $entete .= "X-auth-smtp-user: contact@monsite.fr \n"; $entete .= "X-abuse-contact: webmaster@monsitefr \n"; $entete .= "Date: ".date("D, j M Y G:i:s O")."\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 est au format MIME.\n"; $texte_simple .= "------=$limite\n"; //$texte_simple .= "Content-Type: text/plain; charset=\"US-ASCII\"\n"; $texte_simple .= "Content-Transfer-Encoding: 8bit\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-Type: text/html; charset=\"iso-8859-1\"\n"; $texte_html .= "Content-Transfer-Encoding: 8bit\n\n"; $texte_html .= "<html>\n<head>\n</head>\n<body>\n<style type=\"text/css\">BODY{FONT: 10pt Tahoma;}A{COLOR: #3360C5;TEXT-DECORATION: none;}A:HOVER{COLOR: darkorange;TEXT-DECORATION: underline;}</style>\n"; $texte_html .= $messhtml; $texte_html .= "</body>\n</html>\n"; $texte_html .= "\n\n\n------=$limite--\n"; return mail($destinataire, $sujet, $texte_simple.$texte_html, $entete); } Link to comment Share on other sites More sharing options...
gvosnet Posted November 20, 2006 Author Share Posted November 20, 2006 Argh, je viens de trouver. Voici le code de la fonction corrigé : (La différence se trouve dans la partie $texte_html, avec des "\n" en moins) function mail_html($destinataire, $sujet , $messtxt, $messhtml , $from) { $limite = "_parties_".md5 (uniqid (rand())); $entete = "Reply-to: $from\n"; $entete .= "From:$from\n"; $entete .= "X-Sender: <www.monsite.fr>\n"; $entete .= "X-Mailer: PHP\n"; $entete .= "X-auth-smtp-user: contact@monsitefr \n"; $entete .= "X-abuse-contact: webmaster@monsite.fr \n"; $entete .= "Date: ".date("D, j M Y G:i:s O")."\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 est au format MIME.\n"; $texte_simple .= "------=$limite\n"; $texte_simple .= "Content-Type: text/plain\n charset=\"US-ASCII\"\n"; $texte_simple .= "Content-Transfer-Encoding: 8bit\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-Type: text/html; charset=\"iso-8859-1\"; "; $texte_html .= "Content-Transfer-Encoding: 8bit\n\n"; $texte_html .= "<html>\n<head>\n</head>\n<body>\n<style type=\"text/css\">BODY{FONT: 10pt Tahoma;}A{COLOR: #3360C5;TEXT-DECORATION: none;}A:HOVER{COLOR: darkorange;TEXT-DECORATION: underline;}</style>\n"; $texte_html .= $messhtml; $texte_html .= "</body>\n</html>\n"; $texte_html .= "\n\n\n------=$limite--\n"; return mail($destinataire, $sujet, $texte_simple.$texte_html, $entete); } Edit : enlevage du nom du site (désolé, j'ai oublié le coup là). Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.