mercoledì, gennaio 21, 2015

Invio posta elettronica con node.js

In questo post vedremo come inviare un messaggio di posta elettronica con node.js.

L'idea è di aggiungere alla nostra applicazione, una funzionalità di conferma iscrizione: quando un utente nuovo si registra, il sistema invierà un messaggio di posta elettronica con un link per confermare la registrazione.

Prima di modificare l'applicazione web, diamo un'occhiata al codice per inviare un messaggio di posta elettronica.

Per poterlo fare, dobbiamo appoggiarci ad un fornitore di servizio di posta elettronica, non possiamo che appoggiarci a gmail: sarà dunque necessario aprire un account di posta elettronica con gmail per inviare la posta elettonica tramite le credenziali dell'utenza creata.

Se non avete un account di gmail, potete crearlo al volo qui, dovete poi solo ricordarvi l'indirizzo di posta scelto e la password.

Ci avvaleremo del modulo nodemailer , che ci semplificherà notevolmente il lavoro da svolgere.

Ho preparato un frammento di programma per  mostrarvi nodemailer all'opera
 var servizioPosta = require('nodemailer');  
   
 var postino = servizioPosta.createTransport({  
   service: 'gmail',  
   auth: {  
     user: 'VOSTRO_NOME_UTENTE@gmail.com',  
     pass: 'VOSTRA_PASSWORD'   
   }  
 });  
   
 postino.sendMail({  
   from: 'sender@address',  
   to: 'ivan.saracino@cspnet.it',  
   subject: 'hello',  
   text: 'hello world from node.js!'  
 }, function(err, info) {  
   if (err)  
     console.log(err);  
   if (info)  
     console.log(info);   
 });  
Importiamo il modulo nodemailer che espone il metodo createTransport a cui devono essere passati dei parametri di configurazione, tra cui il nome utente e la password del vostro account di posta.

A quel punto il postino può consegnare la mail con il metodo asincrono sendMail con gli ovvi parametri.

Il parametro from verrà impostato dal gmail all'indirizzo con cui usate il servizio di invio mail, non vi venga in mente di fare degli scherzi pensando di forzare un altro indirizzo diverso dal vero mittente ;)

Spulciate la documentazione ufficiale di nodemailer nel caso abbiate bisogno di funzionalità più avanzate come l'invio di allegati o corpo del messaggio in formato html.

Per poter usare il servizio di gmail da un programma, con il vostro account, dovete configurare gmail abilitando le opzioni meno sicure a questo indirizzo.

Bene, come abbiamo visto, il codice è abbastanza banale.

Come usarlo nella nostra applicazione rispettandone l'architettura?

Provate a rifletterci su .. fino al prossimo post :)

Alla prox.
Ivan






1 commento:

  1. Ciao Ivan! Grazie a questo codice ora il mio server manda l'email. Ma come faccio a collegare questo servizio ad un bottone input sul mio sito html? Ovvero quando un utente si registra, una volta premuto il tasto "REGISTRATI", come faccio a farmi arrivare la mail con tutti i suoi dati inseriti? grazie mille

    RispondiElimina