Derniers

Sailsjs et mailgun pour les emails

Dans une application, il arrive qu'on ait besoin d'envoyer des emails de manière automatique. Dans ce blog, je vais vous montrer comment vous pouvez envoyer des emails dans une application sailsjs avec le service de messagerie automatique mailgun. Si vous ne connaissez pas le framework sailsjs, je vous conseille de lire mon blog qu'est ce que sailsjs.
sending-email-with-mailgun

Création du compte mailgun pour sailsjs

Pour utiliser le service de messagerie mailgun, vous devez créer un compte gratuitement sur le site de mailgun. Une fois le compte créé vous aurez un domain (sandbox) et une API Key. Vous retrouverez ces information dans votre espace mailgun comme le montrent les images ci-dessous.
mailgun-api-key
mailgun-domain

Configuration de mailgun dans sailsjs

Nous allons maintenant configurer mailgun dans sailsjs. Nous allons d'abord installer le module mailgun puis definir quelques variables.
Installer le module mailgun

npm install mailgun-js --save

Cette commande va installer le module mailgun dans votre application sailsjs.
Après installation, ouvrez le fichier config/custom.js et definissez les 3 variables suivantes:

mailgunDomain: 'votre_domaine_mailgun',
mailgunSecret: 'Votre_api_key',
mailgunFrom:'Email_source',

Création d'un helper pour envoyer les emails

Nous allons maintenant créer un helper dans notre application sailsjs pour envoyer les emails. Un helper dans une application sailsjs est comme un service que vous pouvez appeler depuis n'importe quel controller.

sails generate helper send-single-email

Cette commande va générer la structure d'un helper. Modifier le code comme ci-dessous.

var mailgun = require('mailgun-js')({apiKey: sails.config.custom.mailgunSecret, domain: sails.config.custom.mailgunDomain});
module.exports = {


  friendlyName: 'Send single email',


  description: '',


  inputs: {
    options:{
      type:'json'
    }
  },


  exits: {

  },


  fn: async function (inputs, exits) {

    mailgun.messages().send(inputs.options, function (error, body) {
      if(error){
        return exits.error(error)
      }

      // All done.
    return exits.success(body);


    });

  }


};

Notre helper prend comme input un objet de type json.

Envoi des emails depuis un controller

Une fois votre helper créé, vous pouvez l'appeller depuis n'importe quel controller de votre application sailsjs.

  await sails.helpers.mail.sendSingleEmail({
        to:'destination@email.com',
        from:sails.config.custom.mailgunFrom,
        subject:'Sujet',
        text:'Votre message'
      })

C'est terminé. Vous pouvez donc envoyer des emails avec sailsjs at mailgun. Dans un prochain blog, je vous expliquerai comment envoyer un mail avec un template pour une meilleure présentation de votre message.

Author image
Ingénieur en Système de communication EPFL Switzerland. Co-gérant de la société BEF Technology SARL créée en 2009.
Chemaudin et Vaux France Website