[[PageOutline(2, Sommaire)]]
= Wamailer 3.0 =
== Présentation ==
Qu’est-ce que Wamailer ? Une '''librairie''' composée de plusieurs classes écrites en [http://www.php.net/ PHP] et permettant de générer et envoyer des emails.[[BR]]
Wamailer respecte du mieux possible les différentes RFC décrivant la syntaxe des emails.[[BR]]
Wamailer est distribué sous [http://www.gnu.org/licenses/lgpl.html licence LGPL].
== Fonctionnalités ==
* Support des emails HTML et multi-formats (texte ''et'' HTML)
* Destinataires multiples directs, en CC ou BCC
* Support des attachements de fichiers
* Support des images embarquées (applicable aussi bien à d’autres types de fichier)
* Support des encodages de transfert 8bit, quoted-printable, base64 et binary
* Support d’[http://www.unicode.org/ Unicode] (avec l’UTF-8 seulement)
* Ajout et modification d’entêtes d’email
* Reformatage des messages sur la limite de 78 caractères par ligne (word wrap)
* Support SMTP basique
* Support des appels systèmes à Sendmail ou compatible
* Support expérimental d’OpenPGP/MIME (voir la page OpenPgp)
* Fonctionne également sur les hébergements Online (fonction email() spécifique)
* Fonctionnel sur toutes plateformes
== Exemples ==
La version 3.0 est une version complètement réécrite en PHP5.[[BR]]
« Pourquoi ? La version actuelle (2.x) semble bien fonctionner », me direz-vous. Certes, mais on ne peut pas nier que le code soit un peu vieillot. J’ai commencé à développer Wamailer en 2002 et la version courante, modulo quelques corrections au cours des ans et pour les besoins de [http://phpcodeur.net/wascripts/wanewsletter/ Wanewsletter], date de 2003. Bref, tout cela méritait un bon nettoyage, et la tentation de tout refaire proprement était forte…
Je préfère vous laisser lire le code plutôt que de tenter de vous décrire de manière obscure et maladroite la façon dont j’ai souhaité architecturer l’ensemble.
Voici un exemple basique d’utilisation:
{{{
#!php
addRecipient("bobe
Une image :
Ciao!
"; $email = new Email(); $email->setFrom('one@example.org', 'Aurélien'); $email->addRecipient('my@address.tld', 'bobe'); $email->setSubject("Ici, le sujet"); $email->setHTMLBody($message); $email->attach('/path/to/file'); Mailer::send($email); ?> }}} Vous pouvez constater que la méthode addRecipient() peut s’utiliser de deux façons différentes (idem pour les méthodes setFrom() et setReplyTo()). Soit en passant une chaîne valide selon la [http://www.ietf.org/rfc/rfc2822.txt RFC2822], soit en passant le nom de personnalisation en deuxième argument. Notez que ce nom doit être encodé d’une certaine manière s’il contient certains caractères ascii réservés, ou des caractères non ascii. Cela est fait automatiquement seulement si le nom est passé en deuxième argument de la méthode addRecipient(). Le même exemple, mais en attachant une image que nous allons utiliser dans le code HTML (image embarquée): {{{ #!php Ici, le message en HTML!Une image :
Ciao!
"; $email = new Email(); $email->setFrom('one@example.org', 'Aurélien'); $email->addRecipient('my@address.tld', 'bobe'); $email->setSubject("Ici, le sujet"); $email->setHTMLBody($message); $email->attach('/path/to/file.png', 'myimage.png'); Mailer::send($email); ?> }}} Comme vous le voyez, il suffit d’utiliser le nom de l’image dans la balise