Script d’envoi de mail via swiftmailer

SwiftMailer est une librairie gratuite (utilisée avec symfony) qui permet de gérer l’envoie de mails en PHP de manière plus poussée que la fonction mail() native :

  • Ajout de pièce jointes
  • Meilleure gestion des multi destinataires
  • Paramétrage d’un SMTP
  • Gestion des délais lors d’envois de mails en masse
  • Facilité pour gérer les headers, …

 

Script d’envoi de mail en HTML avec swift Mailer :

 

Le code :

require_once ‘lib/swift_required.php’;

$aMailsDest = array(‘mail’=>’nom de la personne’, ‘mail’=>’nom de la personne’, );

$body=<<<EOD
<html>
<head></head>
<body>(Le code html de votre page)</body>
</html>
EOD;

// SMTP
$transport = Swift_SmtpTransport::newInstance(‘nom_serveur_smtp’, 25)
->setUsername(‘login_serveur_smtp’)
->setPassword(‘motdepasse_serveur_smtp’);

$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance()
->setSubject(‘le sujet de mon mail’)
->setFrom(array(‘mail@expediteur.fr’ => ‘Nom de l expediteur’))
->setTo($aMailsDest)
->setBody($body)

// And optionally an alternative body
//->addPart(‘<q>Here is the message itself</q>’, ‘text/html’)

// Optionally add any attachments
//->attach(Swift_Attachment::fromPath(‘my-document.pdf’));

$type = $message->getHeaders()->get(‘Content-Type’);
$type->setValue(‘text/html’);
$type->setParameter(‘charset’, ‘utf-8’);

$result = $mailer->send($message);

 

Explications :

  • Télécharger la librairie swift mailer sur le site officiel, decompressez le zip et mettez le repertoire /lib/ sur votre serveur en FTP. Adaptez ensuite la 1ere ligne du script ci dessus afin d’avoir un chemin correct au niveau du require_once.
  • $aMailsDest est un tableau PHP qui contiendra les destinataires du mail à envoyer.
    Vous pouvez renseigner uniquement 1 seul destinataire et même uniquement le mail (le nom de la personne est optionnel)
  • $body contient le code html du corps du mail à envoyer.
  • $transport va contenir la connection au serveur SMTP que vous allez utiliser. Adaptez le nom du serveur SMTP, le port, le login et le mot de passe.
  • $type->setParameter vous permet de choisir l’encodage de votre email. Dans l’exemple, le mail sera encodé en UTF-8. Vous pouvez changer cette valeur par iso-8859-1, par éxemple.

 

Vous avez désormais un script qui vous sert de base d’envoi de mail en utilisant SwiftMailer.

Je vous invite à consulter la documentation si vous avez besoin d’aller plus loin dans l’envoi de mail.

Post Comment