22.Archives

22.5.Envoyer un e-mail avec Zend Framework 1

22.5.3.Mail en HTML

Pour envoyer un mail au format HTML il suffit d'utiliser la méthode setBodyHTML(). Ce qui donne
<?php
require_once("include_path_inc.php");
require_once("Zend/Mail.php");

$mail = new Zend_Mail();
$mail->setFrom('webmaster@phpfacile.com');
$mail->addTo('__adresse_du_destinataire__');
$mail->setSubject('Mail HTML de test');
$mail->setBodyHTML('<html><body><h1>Mail</h1>Mail en HTML<br/>'.
                   'Avec Zend Framework sur '.
                   '<a href="http://www.phpfacile.com">PHPFacile!</a>'.
                   '</body></html>');
$mail->send();
?>
Et pour un mail, contenant à la fois une version texte et une version HTML, il suffit de faire appel aux 2 méthodes à la fois (so easy...)
<?php
require_once("include_path_inc.php");
require_once("Zend/Mail.php");

$mail = new Zend_Mail();
$mail->setFrom('webmaster@phpfacile.com');
$mail->addTo('__adresse_du_destinataire__');
$mail->setSubject('Mail Texte+HTML de test');
$mail->setBodyText('Mail texte avec Zend Framework');
$mail->setBodyHTML('<html><body><h1>Mail</h1>Mail en HTML<br/>'.
                   'Avec Zend Framework sur '.
                   '<a href="http://www.phpfacile.com">PHPFacile!</a>'.
                   '</body></html>');
$mail->send();
?>

22.5.4.Mail avec fichier joint

Pour joindre un fichier au mail il suffit d'utiliser la méthode createAttachment(). A laquelle on passe
  • en premier argument le contenu "brut" du fichier,
  • puis le type mime du fichier (ici 'image/jpeg', mais ce peut être 'image/gif', 'image/png', 'video/mpeg', 'application/pdf', etc),
  • le type d'attachement que l'on souhaite (entre Zend_Mime::DISPOSITION_ATTACHMENT et Zend_Mime::DISPOSITION_INLINE),
  • le type d'encodage souhaité (privilégier Zend_Mime::ENCODING_BASE64).
  • et enfin le nom du fichier tel qu'il sera présenté au destinataire du mail.
Ce qui donne
<?php
require_once("include_path_inc.php");
require_once("Zend/Mail.php");

$mail = new Zend_Mail();
$mail->setFrom('webmaster@phpfacile.com');
$mail->addTo('__adresse_du_destinataire__');
$mail->setSubject('Mail texte avec un fichier joint');
$mail->setBodyText('Ci-joint une photo de mes vacances');

$photo = "photo.jpg";
$mail->createAttachment(file_get_contents($photo),
                        'image/jpeg',
                        Zend_Mime::DISPOSITION_ATTACHMENT,
                        Zend_Mime::ENCODING_BASE64,
                        'photo.jpg');

$mail->send();
?>
rem
  • Ici, nous avons supposé qu'il y a un fichier photo.jpg dans le même dossier que le script PHP