Dans le cadre des architectures Modern Integration, nous sommes souvent confrontés au besoin d’envoyer des emails aussi bien business (marketing, consumer journey…) que techniques (alerting notification). Pour ce faire, la solution classique est d’utiliser un serveur SMTP « on-premise », mais il existe désormais des solutions de Cloud permettant de faciliter et d’accélérer la mise en place parfois complexe de ces besoins. Dans ce but, Microsoft a intégré le composant Twilio SendGrid comme SMTP provider. Nous allons voir les avantages de cette solution par rapport à un serveur SMTP classique et les différentes méthodes proposées pour s’y interfacer.

 

Qu’est-ce que Twilio SendGrid ?

 

Twilio SendGrid est un SMTP provider dans le Cloud qui agit comme un moteur de livraison d’emails visant à servir à la fois les besoins marketing que plus techniques. Intégrée à Azure en décembre 2012, cette solution a gère les détails techniques de la livraison des emails, tels que :

  • la mise à l’échelle de l’infrastructure ;
  • la sensibilisation des ISP (Internet Service Provider) ;
  • le monitoring ;
  • l’analyse en temps réel.

SendGrid a été fondé en 2009 comme simple SMTP provider. En 2012, pour intégrer les SMS et les push notifications, il s’associe avec Twilio qui les rachètera pour 2 milliards de dollars en 2018. Le service prend alors le nom de Twilio SendGrid.

 

Les avantages de Twilio SendGrid par rapport au serveur SMTP

Les avantages principaux de Twilio SendGrid par rapport à un serveur SMTP classique, sont principalement ceux du Cloud : scalabilité, haute disponibilité ainsi qu’un time-to-market accéléré sans avoir à gérer l’infrastructure d’un serveur SMTP.

 

Scalabilité

 

Lors de la création du composant, plusieurs plans de consommation sont proposés :

  • Gratuit (Free) jusqu’à 100 emails/jour pour tester la solution ;
  • Plusieurs plans Essentials permettant d’envoyer jusqu’à 100K emails/mois.
  • Plusieurs plans Pro permettant d’envoyer jusqu’à 2,5M emails/mois. Ces plans offrent aussi une adresse IP dédiée et des gestions de sub-users.

 

A noter :  le plan de consommation peut être modifié à la hausse ou à la baisse (scale up & down) en cours d’utilisation pour s’adapter au mieux à la consommation réelle de la plateforme, sans interruption de service.

 

Haute disponibilité

 

Twilio SendGrid se base sur une architecture hybride composée de multiples datacenters, inbound edge locations mondiaux et de failover policies garantissant la disponibilité de la plateforme.

A noter : un SLA de disponibilité de 99,99% est annoncé.

D’autre part, Twilio SendGrid intègre à son portail d’administration des outils de monitoring comprenant un dashboard complet de l’activité des emails passés par la solution. Ce dashboard est détaillé avec des KPIs additionnels dans la partie « Stats », tels que la géolocalisation des destinataires, etc.

Il propose aussi également, un système d’Event pouvant être rapidement intégré dans les processus métiers. Il en existe 2 types :

  • Les Event de delivery indiquent l’état de la livraison des emails au destinataire.
  • Les Event d’engagement indiquent comment le destinataire interagit avec l’email.

 

Twilio sendgrid Dashboard de monitoringOverview du Dashboard de monitoring

 

Dans la partie « Activity », on peut avoir le statut détaillé du workflow de l’email.

 

Twillio sendgrid workflow email

 

En conclusion, Twilio SendGrid est une solution rapide et facile d’utilisation pour intégrer dans les processus métier ou d’alerting un moteur d’envoi d’emails centralisé et monitoré pour répondre aux besoins aussi bien fonctionnels que techniques.

 

Comment utiliser Twilio SendGrid ?

 

Pour répondre à toutes les problématiques d’intégration, Twilio SendGrid met à disposition deux méthodes pour envoyer des emails :

  • par SMTP API ;
  • par API.

 

Envoi email via twillio sendgrid

 

Prérequis à l’envoi d’un email via Twilio SendGrid

 

Quel que soit le mode choisi, il existe deux prérequis avant de pouvoir envoyer un email.

Il faut tout d’abord qu’un administrateur configure une API Key dans la console afin de permettre de s’authentifier.

Dans Settings > Api Keys :

Twillio SendGrid creat API key

Cette clé doit au minimum avoir les permissions « Mail ».

Twillio SendGrid clé

⚠️ Attention : La valeur de la clé doit être récupérée et sauvegardée car elle ne pourra plus être récupérée par la suite.

 

Clé créée dans Twillio SendGrid

Le second prérequis est le paramétrage du Sender Authentification afin que SendGrid puisse envoyer des emails en votre nom. Il existe pour cela deux méthodes :

  • le Domain Authentification (à privilégier pour la production)
  • le Single Sender authentification.

Cette configuration peut être faite dans Setting > Sender Authentication :

 

tillio Sendgrid paramétrage sender expéditeur

Pour aller plus loin, voici les liens vers la documentation SendGrid pour configurer suivant les deux méthodes :

 

Envoi d’emails par SMTP

 

TwilioSendGrid propose d’envoyer des emails via le SendGrid’s SMTP API :

  • Configurer l’hôte du serveur dans le client de messagerie ou l’application sur « sendgrid.net » (ce paramètre est parfois appelé serveur SMTP externe ou relais SMTP).
  • Définir le nom d’utilisateur sur la chaine apikey (ce paramètre est la chaine exacte « apikey» et non la clé API elle-même)
  • Configurer le mot de passe sur l’ApiKey générée (voir au-dessus la génération des ApiKey).
  • Le port peut être configuré suivant le mode de connexion choisi :
    • Pour les connexions SSL : utiliser le port 465.
    • Pour les connexions TLS ou décryptées : utiliser les ports 25, 2525 ou 587 (recommandé).

 

⚠️ Attention :

Limitations de la méthode SMTP :

  • Possibilité d’envoyer jusqu’à 5 000 messages par connexion SMTP.
  • 10 000 connexions simultanées peuvent être ouvertes à partir d’un seul serveur.

 

 

Envoi d’emails par API

 

Twilio SendGrid met à disposition une REST API POST « /mail/send » qui permet d’envoyer des emails via Web API.

La requête est configurée comme suit :

Twillio sendgrid API

  • Body :
    • attachments : tableau répertoriant les pièces jointes à un email ;
    • content : le contenu de l’email au format html ;
    • from : information sur l’expéditeur (adresse email, nom) ;
    • personalizations : tableau comportant les information sur les personnes recevant l’email aussi bien en destinataire qu’en copie ;
    • subject : sujet de l’email.

 

A noter : l’adresse email utilisée a dû être vérifiée au préalable par l’une des deux méthodes évoquées plus haut.

 

Twillio SendGrid exemple de payload d'APIExemple de payload d’API

 

Note : une validation de la requête est faite avant que l’email soit envoyé. S’il y a des erreurs, SendGrid identifiera et renverra autant de problèmes que possible pour chaque demande.

 

⚠️Attention : L’utilisation de l’API comporte aussi des limitations :

  • La taille totale de l’email, pièces jointes comprises, doit être inférieure à 30 Mo.
  • Le nombre total de destinataires ne doit pas dépasser 1 000. Cela inclut tous les destinataires définis dans les paramètres « to», « cc » et « bcc » (cci en français), pour chaque objet que vous incluez dans le tableau de « personalizations ».
  • La longueur totale des « custom arguments» doit être inférieure à 10 000 octets.
  • L’encodage Unicode n’est pas pris en charge pour le champ « from».
  • Les personnalisations « name», « cc.name » et « bcc.name » ne peuvent pas inclure les caractères « ; » ou « , ».

 

L’essentiel à retenir sur Twilio SendGrid

Afin de répondre à la nécessité grandissante des entreprises d’envoyer des emails dans leurs divers besoins métiers, Microsoft a intégré dans son offre le service SendGrid Twilio qui permet de centraliser l’envoi et le monitoring des emails dans un seul outil. L’interface par les APIs est à privilégier dans les processus Modern Integration, le mode SMTP est conseillé pour les processus legacy ne permettant pas la communication par API.