Envoyer des mails en javascript avec nodemailer

Pour un projet perso qui tourne sur un stack MEAN (Mongo, Express, Angular et NodeJS), j’ai eu besoin de notifier des utilisateurs en leur envoyant un mail.

J’ai donc trouvé plusieurs librairies qui font le boulot, mais j’ai beaucoup accroché avec nodemailer qui pour moi est la plus propre et simple d’utilisation. Et d’ailleurs, avec plus de 5000 stars et 70 contributeurs sur Github ça va, c’est assez stable 🙂

Installation

Ajout de nodemailer au projet (le —save pour ajouter a dépendance au package.json)

[javascript]npm install nodemailer —save [/javascript]

Autorisation Gmail

Pour Gmail, et surement les autres aussi, il faut configurer son compte en « Bas niveau de sécurité » pour autoriser une application externe  à lire/envoyer des emails.

(pour ceux qui ne souhaitent pas baisser le niveau de sécurité, il existe d’autres alternatives)

Baisser le niveau de sécurité : https://www.google.com/settings/security/lesssecureapps

Envoyer un email

Au début du fichier, au moment des import, on ajoute une dépendance à nodemailer :

[javascript]var nodemailer = require(‘nodemailer’);[/javascript]

On crée ensuite la variable « transporter » qui contient les options de connexion et de transport pour l’envoi des emails (qu’on réutilisera à chaque envoi de mail)

[javascript]var transporter = nodemailer.createTransport(‘smtps://user%40gmail.com:password@smtp.gmail.com’);[/javascript]

Ensuite on construit l’objet JSON « mailOptions » qui contient les différents champs du mail (les symboles unicodes sont supportés!).

[javascript]var mailOptions = {
  from: ‘Joey Bronner" <mon@email.com>’,
to: ‘yourfriend@email.com, yourotherfriend@email.com’,
  subject: ‘Bonjour’,
  text: ‘Hello world’,
  html: ‘<b>Hello world</b>’
};[/javascript]

Quatre paramètres sont obligatoires et d’autres sont facultatifs:

  • from
  • to
  • subject
  • text / html

Dernière étape, l’envoi du mail!

[javascript]transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
}
console.log(‘Message sent: ‘ + info.response);
});
[/javascript]

Pleins d’options (pièces jointes, templates etc…) sont disponibles, donc si vous avez besoin d’envoyer des mails en JS, pensez à nodemailer!

Plus d’informations sur le repository Github : https://github.com/nodemailer/nodemailer

22 Comments Envoyer des mails en javascript avec nodemailer

  1. Stormy

    Heya i’m for the first time here. I found this board and I find It really useful & it
    helped me out much. I hope to give something back and aid others like you helped me.

    Reply
  2. ok388

    We stumbled over here different web page and thought I should
    check things out. I like what I see so i am just following
    you. Look forward to exploring your web page for a second time.

    My blog post; ok388

    Reply
  3. gui hang di my

    347779 983092Jane wanted to know though your girl could certain, the cost I simply informed her she had to hang about until the young woman seemed to be to old enough. But the truth is, in which does not get your girlfriend to counteract employing picking out her really own incorrect body art terribly your lady are normally like me. Citty style 529893

    Reply
  4. como rastrear celular

    228813 142879My wife style of bogus body art were being quite unsafe. Mother worked with gun first, soon after which they your lover snuck free upon an tattoo ink ink. I was certain the fact just about every really should not be epidermal, due to the tattoo ink could be attracted from the entire body. make an own temporary tattoo 791073

    Reply
  5. สโบเบ็ต

    62179 548705Aw, this was an exceptionally good post. In concept I would like to place in writing such as this moreover – spending time and actual effort to create a excellent article but so what can I say I procrastinate alot by way of no indicates discover a way to go completed. 468247

    Reply

Leave a Reply

Your email address will not be published.