Dans le monde numérique d’aujourd’hui, qui évolue rapidement, l’email marketing est un outil essentiel pour les entreprises afin d’atteindre leurs clients de manière efficace. Cependant, la mise en œuvre d’un système d’envoi d’e-mails peut être un processus complexe et chronophage, en particulier pour les développeurs qui n’ont pas l’habitude de travailler dans ce domaine.


Heureusement, avec Sendinblue, l’envoi de courriels est une tâche très facile. En tant que plateforme SaaS (Software-as-a-Service), Sendinblue fournit tout ce dont vous avez besoin en tant que chef d’entreprise ou développeur pour envoyer vos courriels à vos utilisateurs très facilement.

Qu’est-ce que Sendinblue ?

SendinBlue est une plateforme SaaS (Software-as-a-Service) qui offre une solution de marketing par courriel facile à utiliser pour les petites, moyennes et grandes entreprises. SendinBlue fournit une plateforme qui aide les entreprises à développer leurs relations avec leurs clients, principalement par le biais de services d’email et de SMS.

SendinBlue propose également des API et des outils qui permettent aux développeurs d’automatiser et d’envoyer des courriels et des SMS. Ces outils sont simples à intégrer avec Node.js et d’autres langages de programmation pour créer des campagnes d’emails et de SMS personnalisées.

Lire  Comment effectuer un retrait d'argent Binance vers votre banque ?

Avec SendinBlue, les entreprises peuvent rationaliser les processus de communication et atteindre les utilisateurs ou les clients plus efficacement.

Comment obtenir les identifiants API de SendinBlue ?

Pour utiliser les API et SDK de SendinBlue, la première condition préalable est d’avoir un compte SendinBlue. SendinBlue propose un processus d’inscription facile, et vous pouvez créer un compte sur la page d’inscription de SendinBlue.

Créez un compte, entrez les détails requis et choisissez un plan approprié dans le processus d’accueil. SendinBlue vous redirigera ensuite vers votre tableau de bord où vous pourrez obtenir vos identifiants API.

Pour obtenir vos identifiants API, suivez les étapes ci-dessous.

  1. Cliquez sur le nom de votre organisation dans le coin supérieur droit du tableau de bord.
  2. Sélectionnez SMTP &amp ; API dans le menu déroulant.
    Sélectionner SMTP &amp ; API dans le menu déroulant

  3. Passer à la page Clés API et cliquez sur l’onglet Générer une nouvelle clé API bouton.
    Cliquez sur le bouton

  4. Dans la fenêtre qui s’affiche, donnez un nom à votre clé, copiez la chaîne générée, puis stockez-la en toute sécurité.

Cette chaîne est votre clé API et votre justificatif d’identité que vous devez conserver soigneusement afin qu’elle ne tombe pas entre de mauvaises mains.

Comment construire un système d’envoi d’emails en Node.js

Node.js n’a pas de paquetage intégré pour l’envoi d’emails comme Golang. Pour envoyer des emails, vous avez besoin d’un package externe comme nodemailer ou celui fourni par SendinBlue.

Vous aurez également besoin d’une connaissance pratique de Node.js et d’un environnement de développement Node.js sur votre machine.

Considérons cette simple application Node/Express avec un fichier /waitlist endpoint :

 // server.js
const express = require('express');

// create server
const server = express();
const port = 3333;

server.listen(port, () => {
    console.log(`server listening on port ${port}`);
})

// create waitlist endpoint
server.use('/waitlist', async (req, res) => {
    try {
        const user = req.body;

        console.log(`${user.fullname} joined the waitlist`);
        res.status(200).json({ message: 'Joined Waitlist successfully' })
    } catch (error) {
        console.error(error)
        res.status(500).json({ message: 'An error occurred' })
    }
})

Vous pouvez utiliser SendinBlue pour envoyer un e-mail de bienvenue à un utilisateur qui s’inscrit sur la liste d’attente.

La première étape consiste à installer le SDK en utilisant npm ou tout autre gestionnaire de paquets. Exécuter npm install sib-api-v3-sdk ou yarn add sib-api-v3-sdk dans le dossier de votre projet pour l’ajouter aux dépendances du projet.

Après l’installation, vous êtes prêt à envoyer des courriels avec seulement quelques lignes de code supplémentaires. Sur un projet plus important, vous voudrez probablement isoler la fonctionnalité d’envoi d’emails dans un fichier séparé. Cependant, pour cette démonstration, vous pouvez continuer à utiliser le même fichier server.js fichier.

Importer le fichier sib-api-v3-sdk et configurez le client SendinBlue comme suit :

 const SibApi = require('sib-api-v3-sdk');

// instantiate new SendinBlue API client
const SibClient = SibApi.ApiClient.instance;

// Authentication
SibClient.authentications['api-key'].apiKey = process.env.SIB_API_KEY
 || 'YOUR_API_KEY_HERE';

Ensuite, mettez en place une configuration et créez une fonction pour envoyer les emails de bienvenue :

 const transactionEmailApi = new SibApiSDK.TransactionalEmailsApi();

let smtpMailData = new SibApiSDK.SendSmtpEmail();

const sender = {
  email: 'sendinbluemail@example.com', // your email address
  name: 'Example Sender',
};

const SendWaitlistEmail = async (userData) => {
}

La fonction transactionEmailApi La variable stocke un objet qui vous permet d’envoyer des emails de transaction (comme on les appelle sur SendinBlue). La variable smtpMailData La variable smtpMailData stocke les données de transaction dont vous aurez besoin pour envoyer chaque courriel : le destinataire, le contenu, etc.

Passons maintenant au corps du SendWaitlistEmail fonction. Le code suivant montre à quoi doit ressembler le corps de la fonction.

 const SendWaitlistEmail = async (userData) => {
    try {
        smtpMailData.sender = sender;

       smtpMailData.to = [{
            email: userData.email,
            name: userData.fullname
        }];

       smtpMailData.subject = 'You are on the waitlist!';

       smtpMailData.params = {
            'name': userData.fullname,
            'twitter': '@makeuseof'
        };

       smtpMailData.htmlContent = "<html><body><p>Hello {{ params.name }}, "
                 + "welcome to makeuseof.com waitlist. We'll notify you "
                  + "when we launch. Kindly follow us on Twitter "
                 + "{{ params.twitter }}.</p></body></html>";

        // send email
        await transactionEmailApi.sendTransacEmail(smtpMailData)
            .then((data) => {
                console.log(data) // log the email id
            })
            .catch((error) => {
                console.error(error)
                throw new Error(error) // handle errors
            })
    } catch (error) {
        console.log('An error occured...')
        console.error(error)
        throw new Error(error) // handle errors
    }
}

La plus grande partie de ce code remplit les propriétés clés de la fonction smtpMailData objet. Dans l’ordre, il s’agit de

  • expéditeur : Un objet contenant deux propriétés : email et nom. Le code ci-dessus utilise une adresse électronique fictive, mais vous devriez utiliser une adresse électronique réelle pour les applications de production.
  • à : Il s’agit d’un tableau de destinataires d’e-mails. Les éléments de ce tableau sont des objets définis avec les données (courriel et nom) du destinataire du courriel. Vous pouvez avoir jusqu’à 50 destinataires par message. Techniquement, il est possible d’envoyer votre message à plus de 50 destinataires à la fois, mais cela augmente le risque que les agents de messagerie le considèrent comme du spam.
  • sujet : Il s’agit de l’objet de l’e-mail à envoyer.
  • params : Il s’agit de données supplémentaires que vous pouvez utiliser dans différentes parties de votre courrier électronique (principalement l’objet et le contenu). Vous pouvez utiliser les valeurs de ce paramètre paramètres en les entourant de doubles accolades (i.e. {{ params.name }}).
  • htmlContent : Cette propriété définit le corps du message. Elle permet de définir le corps du message de l’e-mail, que vous pouvez formater à l’aide du langage HTML. Elle dispose également d’une alternative, textContentqui permet de conserver le corps du message en clair.

L’email peut avoir d’autres propriétés, et vous pouvez les découvrir dans la documentation développeur de SendinBlue.

Enfin, la fonction sendTransacEmail méthode de transactionEmailApi envoie l’e-mail et renvoie l’identifiant de l’e-mail.

Après avoir implémenté la fonction SendWaitlistEmail vous pouvez l’appeler dans le point de terminaison de la liste d’attente. Le point d’accès à la liste d’attente ci-dessus ressemblera désormais à ceci :

 server.use('/waitlist', async (req, res) => {
    try {
        const user = req.body;

        console.log(`${user.fullname} joined the waitlist`);

        // call email sender function
        await SendWaitlistEmail(user)
        res.status(200).json({ message: 'Joined Waitlist successfully' })
    } catch (error) {
        console.error(error)
        res.status(500).json({ message: 'An internal server error occurred' })
    }
})

Vous pouvez démarrer votre application et tester votre point de terminaison de liste d’attente dans un client API REST, ou à partir du frontend de votre application. Voici un exemple de requête de test à partir de Postman.

exemple de requête postman pour la liste d'attente

Voici à quoi ressemble l’e-mail reçu. Remarquez que les valeurs des champs params sont présents.

exemple d'email reçu de l'application de test

Si vous vérifiez dans votre terminal, vous verrez également l’icône messageId imprimée dans la console. Vous pouvez stocker cette valeur dans une base de données ou dans un journal pour identifier un courriel particulier.

Vous pouvez également consulter quelques conseils pour éviter que les courriels n’aillent dans les spams des destinataires.

Bien que ce système de messagerie fonctionne correctement, le fait que le point final appelle directement la fonction d’envoi du courrier électronique n’est pas l’approche la plus efficace. En effet, votre application risque d’attendre inutilement l’envoi du courrier électronique. Pour éviter cela, vous devriez optimiser le processus en mettant en œuvre une file d’attente de tâches pour gérer la charge de travail du courrier électronique.

L’envoi d’emails en Node.js n’a jamais été aussi simple

Il est satisfaisant de réaliser qu’il est possible de construire un service d’envoi d’emails en Node.js très facilement.

Au-delà de la portée de ce guide, il y a beaucoup d’autres choses que vous pouvez faire avec SendinBlue. Vous pouvez envoyer différentes versions d’emails à différents destinataires en même temps, utiliser des modèles d’emails fournis par SendinBlue, configurer des webhooks pour détecter les actions prises par les destinataires de vos emails, et afficher des analyses en temps réel.

Vous pouvez explorer ces fonctionnalités en les consultant sur le portail des développeurs et en les implémentant dans vos applications Node.js.