[php5] - simple classe d'envoi d'email

Description

Bonjour à tous,
voici une petite classe d'envoi d'email réalisée en php5 qui permet l'envoi d'email :
_ simple (un texte)
_ alternative (différentes versions d'un texte (plain et html généralement))
_ mixed simple (un texte et n pièces jointes (avec n > 0))
_ mixed alternative (différentes versions d'un texte avec n pièces jointes)

Il est possible d'avoir un accusé de reception de la lecture de l'email par votre correspondant (si son lecteur d'email le permet) et de gêrer tous les en-têtes de l'email.
Les images dans les body en html sont automatiquement join dans l'email lorsqu'ils sont accessibles par le script et il est possible de compresser des documents à la volée lors de l'ajout du document

Pour information, voici ces en-têtes avec l'explication de chacun :
'XPriority' : Priorité, de 1 à 5, généralement 3
'Sender' : Emetteur, par défaut la même valeur que le champs From
'ReplyTo' : Email de réponse (celui indiqué quand on clique sur Répondre), par défaut la même valeur que le champ From
'ReturnPath' : L'adresse email qui sera informée en cas d'erreur, par défaut la valeur de From
'From' : L'emetteur de l'email
'To' : Tableau de destinataires
'Cc' : Tableau de destinataires en Copie Carbone
'Bcc' : Tableau de destinataires en Copie Carbone Cachée
'DispositionNotificationTo' : Email ou envoyer l'accusé de réception
'XMailer' : Le nom de l'application qui à envoyé l'email
'Organisation' : L'organisation émettrice de l'email
'Date' : La date. Automatiquement mise à la date du moment lors de l'envoi
'MimeVersion' : Version des En-têtes MIME, par défaut 1.0. Mieux vaut laisser cela tel quel
'Subject' : Sujet de l'email

Voici le code :

Source / Exemple :


<?php
require_once ('Email/SimpleMail.php');
require_once ('Compression/GzCompression.php');

try {
	$oEmail = new SimpleMail ();
	$oEmail->From = 'moi@example.org';
	$oEmail->To = array ('friend1@example.org', 'friend2@example.org');
	$oEmail->Bcc = array ('secretFriend@example.org');
	
	$oEmail->Subject = 'Nice Message';
	
	$oEmail->addBody ('This message is a plain text message, very simple !');
	$oEmail->addBody ('This message is in <b>html</b> format message, with some <u>special html tags</u>. You can also automatically add some <img src="image.png" alt="images" />. It\'s very simple !', 'text/html');

	$oEmail->addAttachment ('/var/www/myDoc.pdf', MimeType::get ('pdf')); // Basic file !
	$oEmail->addAttachment ('/var/www/myDoc.pdf', MimeType::get ('tgz'), 'myCompressedDoc.tgz', $oGzCompress); // Compressed File

	$oEmail->send ();

	echo 'You\'re message was sent';
}
catch (Exception $oE) {
	var_dump ($oE);
	echo 'An error occured during sending the message.<br />'.$oE->getMessage ();
}
?>

Conclusion :


La classe lance des exceptions basiques (de la classe Exception). Je l'ai laissé volontairement tel quel afin que vous puissiez modifier les exceptions en fonction de vos besoins et de vos classes disponibles.

Pour ce qui est de la compression, c'est vraiment un système simpliste, juste pour montrer la simplicité de l'implémentation. Vous pouvez ensuite gerer vos propres classes de compression, qui doivent implémenter l'interface iCompression ou modifier le code de la classe SimpleMail avec vos Objects (Classe Abstraite ou Interface, etc)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.