·1 min de lecture

Envoi d’email avec PHP grâce à Swift Mailer

Auteur(s) de l'article

Gilles
L’une des tâches les plus rébarbatives dans le développement web, ça doit bien être l’envoi d’email (après la gestion des formulaires, qui pourrait bien faire l’objet d’un futur article).
Certes, il existe la fonction mail() intégrée à PHP, mais celle-ci est très basique et loin d’être pratique. Comment envoyée facilement un mail multi-part ? attacher une pièce jointe ? envoyer le mail à plusieurs destinataire ? etc, etc.
C’est là qu’intervient la librairie Swift Mailer. Cette librairie, entièrement orientée objet, est extrêmement riche en fonctionnalités et est basée sur un système de plugin modulable. Elle a été écrite par Chris Crobyn et est désormais maintenue par Fabien Potencier (lead developer of the symfony framework).
Allez, un peu de code faut mieux qu’un paragraphe:

Création du message

[php gutter="false"]
require_once ‘/path/to/swift-mailer/lib/swift_required.php’;

// create the message
$message = Swift_Message::newInstance();
// hop, on défini le sujet du mail
->setSubject(‘Recherche mangeur de kiri’)
->setFrom(array(‘jean@example.com’ => ‘Jean Bond’))
->setTo(array(‘destinataire1@example.com’))
->setBody(‘Le corps du mail en texte.’, ‘text/plain’)
->addPart("<p>La version HTML.</p>", ‘text/html’)

// Ajout d’une pièce jointe depuis un fichier
->attach(Swift_Attachement::fromPath(‘document.pdf’))
// Ajout d’une pièce jointe crée dynamiquement
->attach(Swift_Attachement::newInstance(
$data, ‘document2.pdf’, ‘application/pdf’
))
;
[/php]

Envoi

[php gutter="false"]
// Création du "moyen de transport"
// (via serveur SMTP, Sendmail ou fonction mail() php)
// Ici, envoi via serveur SMTP
$transport = Swift_SmtpTransport::newInstance(‘smtp.example.com’, 25)
->setUsername(‘user’)
->setPassword(‘PaSswoRd’)
;

$mailer = Swift_Mailer::newInstance($transport);
$result = $mailer->send($message);

if($result)
{
/* … */
}
else
{
/* … */
}
[/php]
Et voilà!
plutôt simple non ?
Et pour finir, je vous invite à lire la doc détaillée de la librairie. Par ailleurs, n'hésitez pas à nous contacter si vous avez des questions spécifiques. 

Références:

Partager

Mise à jour le: December 12, 2020

Nous serions ravis de discuter avec vous

Nous contacter
Nous contacter

Lausanne

Rue de Genève 90b

+41 21 623 63 03

Newsletter

Formulaire d'inscription à la newsletter

Copyright © 2020 Antistatique

  • Projets
  • Services
  • Agence
  • Équipe
  • Blog
  • Contact

Always keep it simple & sunny!