2014-11-16 16 views
16

Un paio di giorni fa mi sono reso conto che Google ha cambiato la sicurezza degli account Gmail, in particolare per la possibilità di inviare e-mail dalle applicazioni. Dopo aver cercato su Google per un po 'non sono riuscito a trovare una soluzione per questo. Così, ho fatto ricorso a Mailgun. Ho creato un account e l'ho abilitato con la verifica aziendale. Tuttavia, non riesco ancora a inviare email. Continuo a ricevere un errore sull'impossibilità di trovare l'URL richiesto. Sospetto che, dal momento che non ho ancora creato un dominio, non è in grado di selezionare il dominio mailgun fornito per impostazione predefinita. Qualcuno potrebbe mostrarmi come testare l'invio di e-mail utilizzando Mailgun da NodeMailer che indica il nome sandbox fornito da mailgun.Invio di email tramite Mailgun con il pacchetto NodeMailer

grazie in anticipo José

risposta

27

ho creato il Nodemailer transport for mailgun.

Ecco come funziona.

Si installa il pacchetto con npm install come si farebbe con qualsiasi pacchetto, poi in un file vuoto:

var nodemailer = require('nodemailer'); 
var mg = require('nodemailer-mailgun-transport'); 

// This is your API key that you retrieve from www.mailgun.com/cp (free up to 10K monthly emails) 
var auth = { 
    auth: { 
    api_key: 'key-1234123412341234', 
    domain: 'sandbox3249234.mailgun.org' 
    } 
} 

var nodemailerMailgun = nodemailer.createTransport(mg(auth)); 

nodemailerMailgun.sendMail({ 
    from: '[email protected]', 
    to: '[email protected]', // An array if you have multiple recipients. 
    subject: 'Hey you, awesome!', 
    text: 'Mailgun rocks, pow pow!', 
}, function (err, info) { 
    if (err) { 
    console.log('Error: ' + err); 
    } 
    else { 
    console.log('Response: ' + info); 
    } 
}); 

Sostituire la chiave API con la vostra e modificare i dettagli e si è pronti a partire!

1

Mi ha funzionato, quando ho aggiunto il dominio anche all'oggetto auth (non solo l'api_key). Come questo:

var auth = { 
    auth: { 
    api_key: 'key-12319312391', 
    domain: 'sandbox3249234.mailgun.org' 
    } 
}; 
18
var nodemailer = require('nodemailer'); 
// send mail with password confirmation 
var transporter = nodemailer.createTransport({ 
    service: 'Mailgun', 
    auth: { 
    user: '[email protected]', 
    pass: 'XXXXXXXXXXXXXXXX' 
    } 
}); 
var mailOpts = { 
    from: '[email protected]', 
    to: '[email protected]', 
    subject: 'test subject', 
    text : 'test message form mailgun', 
    html : '<b>test message form mailgun</b>' 
}; 
transporter.sendMail(mailOpts, function (err, response) { 
    if (err) { 
    //ret.message = "Mail error."; 
    } else { 
    //ret.message = "Mail send."; 
    } 
}); 
+0

quando vorrei utilizzare questo l'auth api_key/dominio? o è un o/o – Phil

Problemi correlati