Configuration de la classe

Il est possible de configurer dans la classe certaines valeurs par défaut:

private $maildatas = array(
	'from' => '', // Expéditeur de l'email
	'replyto' => '', // Champ Reply-to (si différent de l'expéditeur)
	'to' => array(), // Il est possible de remplir ce tableau avec des destinataires par défaut
	'cc' => array(), // Idem qu'au-dessus
	'bcc' => array(), // Idem qu'au-dessus
	'subject' => '', // Sujet de l'email
	'body' => '', // Corps du mail
	'attlist' => array() // Liste des fichiers joints
);

Les divers champs de type email peuvent être de forme simple ( moi@domain.tld ) ou complexe ( Le CrazyCat <moi@domain.tld> ).

Utilisation

Initialisation

La classe peut être instanciée sans arguments, ce qui est utile si des valeurs par défaut ont été configurées, ou en lui passant jusqu'à 4 arguments: $from, $to, $subject et $body.
Notez que dans le cas du To, comme pour les destinataires en Copie Carbone (Cc) et Copie Carbone Aveugle (Bcc), les valeurs s'ajoutent pour permettre d'envoyer le mail à plusieurs personnes en une seule fois.

<?php
// instaciation simple
$mail =& new PhpMail(); 
 
// instanciation avancée
$mail =& new PhpMail('moi@pas.la', 'destinataire@invalid.com', 'Sujet de l\'email');

Modification de l'émetteur et du Reply-to

L'adresse d'expédition et de retour peuvent être modifiées, il y a deux formes d'appel de ces méthodes:

// Forme simple, ne mettra que l'adresse email
$mail->setFrom( 'crazycat@g33k-zone.org'); 
 
// Forme améliorée
// Créera une adresse de réponse de la forme "CrazyCat <crazycat@g33k-zone.org>"
$mail->setReplyTo( 'crazycat@g33k-zone.org', 'CrazyCat');

Ajout de destinataires

Il est possible d'ajouter des destinataires dans les trois types de champs (To, Cc, Bcc). La syntaxe est la même que pour le From ou le ReplyTo, mais il s'agit bien là d'ajout et non pas de modification. Les 3 méthodes sont:

  • addTo($mail, $name)
  • addCc($mail, $name)
  • addBcc($mail, $name)

Ces méthodes peuvent être appelées plusieurs fois, par exemple:

$mail->addTo('test1@domain.tld', 'Destinataire 1');
$mail->addCc('test2@domain.tld', 'Destinataire 2');
$mail->addCc('test3@domain.tld', 'Destinataire 3');
$mail->addBcc('test4@domain.tld', 'Destinataire 4');
$mail->addBcc('test5@domain.tld', 'Destinataire 5');
$mail->addBcc('test6@domain.tld', 'Destinataire 6');

Ceci enverra le mail à Destinataire 1, avec copies à Destinataire 2 et Destinataire 3, et copie cachée aux trois derniers.

Ajout de pièces jointes

Les pièces jointes doivent être des fichiers présents sur le serveur, leur chemin d'accès peut être soit relatif soit absolu. Ils sont ajoutés par la méthode addAttachement($filename). Il n'y a pas de limitation particulière au niveau de la classe

Sujet, corps du mail

Les méthodes setSubject($subject) et setBody($body) permettent préparer le sujet et le corps de l'email. Aucune vérification n'est faite sur ces champs lors de leur création, mais si le sujet est vide il y aura une erreur fatale.

Envoi du mail

Il suffit d'appeler la méthode execMail():

$mail->execMail();

Options supplémenatires

Charset

Vous pouvez modifier l'encodage de l'email (par défaut iso-8859-1) avec la méthode setCharset().
Attention: Aucune vérification n'est faite sur cette valeur.

Forçage de l'envoi en plain-text

Il est possible d'appeler la méthode execMail() avec le paramètre false. Si aucune pièce n'est jointe au mail, le mail sera donc envoyé en mode texte.

Source de la classe

Note générale: Dans la source, de nombreux tests sont effectués en interne (vérification de syntaxe d'email, de chaîne non-vide, ...). Ceci est à titre d'exemple, mais il est préférable d'utiliser la classe Assert pour tout ces tests afin de centraliser les tests.