Magazine Focus Emploi

API d’envoi et de réception d’emails

Publié le 24 novembre 2011 par Abouchard

Pour un projet sur lequel je travaille actuellement (dont j’espère vous parler un de ces jours), j’ai été amené à rechercher des services permettant d’envoyer et de recevoir des emails à travers une interface de programmation déportée. Je vais vous résumer cela, ça pourrait vous être utile.

La problématique

L’envoi de courriers électronique est quelque chose de simple, à la base. En PHP, la fonction mail() est là pour ça. Pour peu que vous utilisiez un hébergement ou un serveur dédié offrant un serveur SMTP (ou une passerelle vers un serveur SMTP), ça fonctionne à peu près bien.

Quand on commence à faire des envois massifs, on tombe rapidement sur deux écueils : On veut s’assurer que les messages sont bien reçus, et on veut des fonctionnalités de gestion des envois.
Concernant la « délivrabilité » (barbarisme dérivé du mot anglais deliverability), il existe des techniques à appliquer côté serveur pour réduire le risque d’être vu comme un spammeur : SPF, DKIM. Mais elles ne sont pas forcément simples à mettre en place ; SPF est accessible tant qu’on sait modifier son DNS, mais DKIM repose sur de l’encryption et est plus délicat à mettre en œuvre. Dans tous les cas, il est important de pouvoir récupérer des statistiques détaillées concernant le nombre de messages qui ont été rejetés par le serveur de destination, ceux qui ont occasionné un retour à l’expéditeur (le fameux NPAI), et idéalement les plaintes déposées suite à un envoi.
Les fonctionnalités supplémentaires sont habituellement des outils de gestion de newsletters (usage premier des envois massifs d’emails), permettant de programmer des campagnes de mailing en ciblant les destinataires à partir de critères. Les services qui intègrent ces outils permettent d’éviter l’installation d’un équivalent côté client.

Pour la réception d’emails, c’est légèrement plus compliqué. Il faut installer un serveur SMTP et y ajouter un serveur POP ou IMAP pour accéder aux messages reçus. Pour peu que vous passiez par un hébergeur, il n’y a plus aucune difficulté technique. Par contre, il faut ensuite coder les programmes qui vont parcourir les boîtes aux lettres électroniques, à la recherche de nouveaux messages. Ce n’est pas forcément le plus évident à mettre en place.
Les services qui proposent des API de réception offrent un fonctionnement évènementiel. Dès qu’un message est reçu, son contenu est transmis par HTTP sur une URL vous appartenant.

Les services d’envoi

Il existe pléthore de services d’envois d’emails : Amazon SES (Simple Email Service), MailChimp, SendGrid, Postmark, ConstantContact, CampaignMonitor, letterPOP, SynergyMail, EmailBrain, Mailigen, BenchmarkEmail, DirectIQ, MailgunActiveCampaign, EmailVision, …

À vous de voir en fonction de vos besoins. Mon expérience est que les services qui intègrent beaucoup de fonctionnalités de gestion (comme EmailVision par exemple) sont très appréciés des marketeux, alors que les informaticiens ont tendance à préférer les outils plus légers et directs comme Amazon SES. Si vous hésitez entre ces deux approches, jetez un œil à MailChimp.

Les services de réception

Il existe beaucoup moins de services de réception : SendGridMailgun, Cloudmailin, APInbox, Context.IO, EmailYak. Ce sont les seuls que j’ai trouvé ; peut-être en existe-t-il d’autres, signalez-moi ceux que vous connaissez en commentaire. SendGrid, Mailgun et EmailYak sont des services hybrides, qui proposent aussi bien l’envoi que la réception d’emails ; dans le cas de SendGrid, le service de réception ne vient qu’en complément à leur service d’envoi (il est possible d’avoir l’envoi sans la réception, mais pas l’inverse).

Les services proposés se ressemblent énormément dans leur fonctionnement. Il faut par contre faire attention aux détails : Possibilité d’utiliser un nom domaine personnel (et à quel prix), nombre de messages traités, mise en place de SPF et DKIM personnalisés, …

Tous ces services proposent une offre gratuite, là encore avec de grandes disparités : certains traitent 200 messages par mois, là où d’autres en traitent 200 par jour ; certains fonctionnent par redirection, alors que d’autres nécessitent que vous modifiiez vos enregistrements DNS ; certains ne gèrent pas les pièces-jointes dans leur offre gratuite.

APInbox semble sympa, mais il est toujours en beta (et impossible de s’y inscrire en ce moment).

Mon avis

Pour le moment, j’expérimente Mailgun, qui semble pas mal pour l’expédition aussi bien que pour la réception. Pour un service brut d’expédition, j’avoue être assez séduit par Amazon SES.

Avez-vous déjà essayé ces services ? Je suis ouvert aux retours d’expérience à ce sujet.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Abouchard 392 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte