Retour au Blog

Envoyer des e-mails sur Symfony avec Swift mailer VS avec le composant Mailer : quelle différence ?

Envoyer des e-mails sur Symfony avec Swift mailer VS avec le composant Mailer : quelle différence ?

Swift Mailer VS Symfony Mailer

D’abord Swift Mailer

Dans les premiers jours de PHP, les développeurs utilisaient la fonction mail() intégrée pour envoyer un e-mail. Cette fonction pouvait souvent échouer sans prévenir et surtout sans vraiment de raison apparente.

Et Swift Mailer est arrivé au début des années 2000 en tant que bibliothèque gratuite liée à Symfony et qui permet d’envoyer des e-mails avec encore plus de fonctionnalités :

  • Ajout de pièces jointes sans utiliser trop de mémoire ;
  • 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 ;
  • Envoi d’e-mails en plusieurs parties / HTML ;
  • Connexion à des serveurs qui nécessitent identifiants et mots de passe.
La première version de Swift Mailer a été testée pendant longtemps et a été publiée en 2009. Cette version avait pourtant mis de côté les fonctionnalités PHP modernes suivantes :
  • Il utilise des traits de soulignement dans les noms de classes au lieu de l’espacement des noms propres ( \Swift_Mailer vs  Swift\Mailer)
  • Pas d’utilisation de types scalaires et d’autres fonctionnalités de PHP 7.

Passons à Symnfony Mailer

Mailer propose une base de code moderne ainsi qu’une structure de classe simplifiée. C’est-à-dire que chaque message est plus petit et plus simple que l’équivalent avec Swift Mailer.

Un message avec Swift message est composé de 38 objets et mesure environ 16 Ko de long. Alors que le même message avec Mailer n’est composé seulement de 7 objets et mesure environ 2Ko de long.

Mieux encore, il est possible d’utiliser un seul modèle pour le HTML, le texte brut, la ligne d’objet et même les pièces jointes. Mailer possède une bibliothèque beaucoup plus petite que Swift Mailer, pour autant elle contient de nombreuses fonctionnalités.

Il est également possible d’envoyer des e-mails en arrière-plan, ce qui n’est pas possible avec les applications Web. En effet, cela peut ralentir votre application.

C’est une bonne pratique d’utiliser un autre processus pour envoyer des e-mails en arrière-plan. Symfony a ensuite développé Bobines Swift Mailer pour y parvenir.

Quel choix faire aujourd’hui ?

Quand utiliser Swift Mailer ?
(Edit) Swiftmailer n'étant plus utilisé à l'heure actuelle, nous vous déconseillons de l'utiliser pour vos applications de production.
Quand utiliser Symfony Mailer ?
  • Si vous travaillez sur une toute nouvelle application et le serez pendant un certain temps ;
  • Si vous n’avez pas peur de casser les changements entre les versions mineures ;
  • Si vous utilisez déjà le composant Messenger dans votre application ;
  • Si vous accordez plus d’importance aux nouvelles fonctionnalités qu’à la stabilité.

Conclusion

Le développement est aujourd’hui presque suspendu. Mailer et ses fonctionnalités représentent l’avenir. En effet son aspect simple d’utilisation rappelle une approche de « retour aux bases » tout à fait appréciable.

Nous espérons que cet article vous aura aidé à y voir plus clair et à comprendre la différence entre Swift Mailer et Symfony Mailer.