nyroBlog
Bannière NyroBlog, par Côme Nicolas
Image par Côme Nicolas - ?

Tag : Web 2.0


PHP : envoyer un mail au format Texte et HTML

L'envoi des emails est souvent délicat, car on ne sait pas quel client mail utilise le destinataire : serait-il capable d'afficher l'HTML, ne prend-t-il en charge que le texte ?

Pour palier à ce problème, il existe une méthode simple qui permet d'envoyer le mail à la fois en Texte et en HTML, et le client mail choisir la partie qui l'intéresse.

Au début, je me suis beaucoup inspiré de cette fonction de Nexen qui marche bien dans la plupart des cas, mais pose encore des cas dans certains webmail (Free de mémoire).

Donc en cherchant un peu, je me suis mis à tester les emails dans tous les sens pour arriver à une fonction qui marche bien.

Il suffit donc d'avoir une variable pour le contenu en texte et une autre pour le contenu en HTML et le tour est joué. (En passant par une fonction qui le fait, c'est super rapide...)

Voici donc le bout de code (brut de pomme, c'est extrait d'une grosse classe...) : a vous de remettre ça en fonction ou de l'utiliser comme bon vous semble !

$site = "www.machin.com";
$from = "exp@machin.com";
$nom = "Expéditeur";
$to = "dest@machin.com";
$sujet = "Hello !";
$text = "Hello every Body !!!";
$html = "

Hello !

";

$from = $nom." <".$from.">";

$limite = "_----------=_parties_".md5(uniqid (rand()));

$header = "Reply-to: ".$from."\n";
$header .= "From: ".$from."\n";
$header .= "X-Sender: <".$site.">\n";
$header .= "X-Mailer: PHP\n";
$header .= "X-auth-smtp-user: ".$from." \n";
$header .= "X-abuse-contact: ".$from." \n";
$header .= "Date: ".date("D, j M Y G:i:s O")."\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/alternative; boundary=\"".$limite."\"";

$message = "";

$message .= "--".$limite."\n";
$message .= "Content-Type: text/plain\n";
$message .= "charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= $text;

$message .= "\n\n--".$limite."\n";
$message .= "Content-Type: text/html; ";
$message .= "charset=\"iso-8859-1\"; ";
$message .= "Content-Transfer-Encoding: 8bit;\n\n";
$message .= $html;

$message .= "\n--".$limite."--";
mail($to, $sujet, $message, $header);

Vous l'aurez compris, le contenu en texte doit être dans $text et celui en HTML dans $html Vous pouvez aussi modifié pour changer le mail de l'abuse (je ne sais pas si c'est bien efficace, si les anti-spam se base dessus à 1 moment donné ou pas.) Enfin, le fait de dire de quel site vient le mail permet d'éviter dans la plupart des cas d'être considéré par du spam par Hotmail.

Enfin, on fait la coupure entre les 2 mails (car c'est bien ça : un mail en texte et un mail en HTML dans un seul) grâce à Content-Type: multipart/alternative; boundary="$limite" qui indique que le mail contient différents formats et que ces parties sont délimités par $limite. Puis dans l'email en lui-même, après mettre la fameuse limite, on indique le type du mail (texte ou html). Et voilà le tour est joué !

Si vous avez des problèmes, des suggestions ou bien si vous utilisez ce bout de code, merci de laisser un commentaire ;)

Plugin DotClear : Abonnement par mail aux commentaires

Depuis peu, Eric de Presse-Citron a mis en place sur son blog Dotclear une fonctionnalité que beaucoup attendait : la possibilité pour les commentateurs de billets de s'abonner par mail aux commentaires pour être avertis à chaque nouveau commentaire.

Au début, celui qui a développé, Greg, un ami à lui, n'avait pas fait ça sous forme de plugin dotclear. A la demande générale, il s'en est chargé. Et beaucoup l'en remercie !

Pour télécharger et installer le plugin, rendez-vous sur le billet sur Presse-Citron

A noter que cette fonctionnalité vient en parallèle de l'abonnement RSS qu'on peut déjà faire avec dotclear pour être au courant des commentaires d'un billet particulier. (c'est d'ailleurs pour ça que je ne pense pas l'installer pour le moment.)

Bed Jumping

Vous vous souvenez quand vous faisiez disputez étant petit lorsque vous sautiez gaiement sur votre lit ?

Eh bien grâce à ce blog, tout le monde à une raison de le faire : pratiquer le Bed Jumping et réaliser la plus belle photo qui soit !

Bed Jump

Tous les types de saut sont acceptés : seul, entre amis, Fun, etc... Les vidéos aussi !

BlogDay, c'est pour aujourd'hui

Blog Day 2006Qu'est-ce que le blogday ?

Le BlogDay (Jour du Blog) a été crée en pensant que les bloggers devaient avoir un jour qui serait dedié à connaître les autres bloggers, d'autre pays ou d'autres centres d'interêts. Ce jour-là, les bloggers pourraient les recommander aux visiteurs de leur blog. __ Qu'arrivera t'il pendant le BlogDay ?__

Toute la journée du 31 août, les bloggers partout dans le monde posteront un article recommandant 5 nouveaux blogs, de préférence des blogs différents de leur culture, point de vue et attitude. En ce jour, les visiteurs de blogs se retrouveront projetés et découvriront des blogs inconnus, célébrant la découverte de nouvelles personnes, et de nouveaux bloggers.

Les instructions du BlogDay :

1. Trouver 5 nouveaux blogs que vous trouvez interessants

2. Informer les 5 bloggers que vous les recommandez pour le BlogDay 2006

3. Ecrire une courte description de chaque blog et placer un lien vers les blogs recommandés

4. Poster sur le "BlogDay Post" (le 31 août)

Donc, Voici les 5 blogs :

FlickR Map, géolocalisation des Photos

FlickR MapFlickR a lancé hier un nouveau service : la géolocalisation des photos.

Et oui, quoi de plus intéressant de savoir où a été pris la photo ?

Et ensuite, on peut rechercher des photos sur une carte (Yahoo map) et trouvé toutes les photos prises au même endroit.

Tout ça me rappele les paroles d'un professeur que j'ai eu en SRC qui disait : "Actuellement, il y a énormément d'efforts fait en informatique pour stocker les méta-données." On est tout à fait dedans. On en est plus à dire dans quelles conditions on a pris la photo, avec quelle ouverture, quelle focale etc... mais à indiquer l'endroit géographique du globe où on a pris la photo. Il ne manque plus qu'une indication temporelle, et on sait tout de la photo.

Un jour après l'ouverture, FlickR annnonce plus de 1,2 Millions de photos géolocalisé : un avenir radieux pour ce service.