Bonjour,
j'ai un problème que je n'arrive pas à résoudre seul et c'est pour ça que je me tourne vers vous.
Je vous expose la situation et là où je butte.
J'ai fait un script qui me permet que lorsque je publie une news sur mon site, de générer automatiquement un mail puis de l'envoyer vers un google groups où il est redirigé vers tous les adhérents d'une association sportive, ainsi dès qu'une news est publiée sur le site, un maximum de personnes est informé.
Mon seul problème est que si j’envoie des liens, le client de messagerie (Windows Live Mail dans mon cas) ne les interprète pas => pas de lien hypertexte.
Voici le code qui envoi le mail :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
<?php $message_mail = stripslashes(nl2br(htmlspecialchars(strip_tags($_POST['contenu']))));
//----------------------------------------
//--------Envoi de l'email----------------
//----------------------------------------
$destinataire = "cnmarignanais_test@googlegroups.com";
$boundary = md5(uniqid(rand()));
//on joint le premier fichier
$fichier1 = "design/images/entete_email.png";
$fp1 = fopen($fichier1, "rb");
$fichierattache1 = fread($fp1, filesize($fichier1));
fclose($fp1);
$fichierattache1 = chunk_split(base64_encode($fichierattache1));
//on joint le deuxième fichier
$fichier2 = "design/images/bas_email.png";
$fp2 = fopen($fichier2, "rb");
$fichierattache2 = fread($fp2, filesize($fichier2));
fclose($fp2);
$fichierattache2 = chunk_split(base64_encode($fichierattache2));
$header = "";
$header .= "From: Club Nautique Marignanais <bureau@cnmarignanais.fr>\n";
$header .='Reply-To: bureau@cnmarignanais.fr'."\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/alternative; boundary = $boundary\n";
//première image
$message .= "\n--$boundary\r\n";
$message .= "Content-Type: application/octet-stream; name=\"$fichier1\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-ID: <entete_email.png>\r\n";
$message .= "\r\n";
$message .= $fichierattache1 . "\r\n";
$message .= "\r\n\r\n";
$message .= "<img src=\"cid: entete_email.png\" /><br /><br />\n\n"; //image du haut
//corps
$message .= "\n--$boundary\nContent-Type: text/html; charset = \"iso-8859-1\"\n\n";
$message .= "<html><body style=\"color:#006995;\">\n";
$message .= "<img src=\"cid: entete_email.png\" /><br /><br />\n\n"; //image du haut
$message .= "".$message_mail."<br/><br/>\n";
$message .= "<small><em>Ceci est un message automatique, merci de ne pas y répondre ! <br/> Il se peut qu'il y est des problemes d'affichage avec certaines messageries.</em></small><br/<br/><br/>\n";
$message .= "<img src=\"cid: bas_email.png\" /><br /><br />\n\n"; //image du bas
$message .= "</body></html>\n";
//deuxième image
$message .= "\n--$boundary\r\n";
$message .= "Content-Type: application/octet-stream; name=\"$fichier2\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-ID: <bas_email.png>\r\n";
$message .= "\r\n";
$message .= $fichierattache2 . "\r\n";
$message .= "\r\n\r\n";
$message .= "<img src=\"cid: bas_email.png\" /><br /><br />\n\n"; //image du bas
$message .= "\n--$boundary--\n end of the multi-part";
$titre_mail = "[CNM NEWS] ".$titre;
if(mail($destinataire, $titre_mail, $message, $header) == true)
{
echo '<span style="color: green;"> Email => OK</span><br>';
} ?> |
Je pense que cela vient de la manière dont j'ai codé mais existe-il une ruse pour que ca puisse marcher ?
Pour information, j'ai essayé de mettre avec les balises <a></a>, sans ces balises, en permettant les balises <a></a> dans la fonction strip_tags($_POST['contenu']), comme ceci
<?php strip_tags($_POST['contenu'], '<a>') ?>
mais rien n'y a fait.
J'attends vos conseils avec impatience.
Cordialement
Twiners 13
Partager