2014-11-16 46 views
16

Kilka dni temu zdałem sobie sprawę, że Google zmieniło bezpieczeństwo kont Gmail, szczególnie w zakresie możliwości wysyłania wiadomości e-mail z aplikacji. Po tym, jak Googlowałem przez jakiś czas, nie mogłem znaleźć dla niego poprawki. Więc uciekłem się do korzystania z Mailguna. Utworzyłem konto i włączono je z weryfikacją Biznesową. Nadal jednak nie mogę wysyłać e-maili. Wciąż pojawia się błąd dotyczący nie znalezienia żądanego adresu URL. Podejrzewam, że skoro nie mam jeszcze domeny, to nie wybieram domyślnie domeny skrzynki pocztowej. Czy ktoś może mi pokazać, jak przetestować wysyłanie wiadomości e-mail za pomocą programu Mailgun z NodeMailer, wskazując nazwę piaskownicy dostarczoną przez program mailgun.Wysyłanie e-maili za pomocą pakietu Mailgun z pakietem NodeMailer

góry dzięki José

Odpowiedz

27

stworzyłem Nodemailer transport for mailgun.

Oto jak to działa.

zainstalować pakiet z npm install jak można zrobić z każdym pakiecie, a następnie w pustym pliku:

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); 
    } 
}); 

Wymień swój klucz API z Ciebie i zmienić dane i jesteś gotowa do pracy!

1

Zadziałało mnie, gdy dodałem domenę również do obiektu auth (nie tylko do api_key). Tak:

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

kiedy użyłbym tego nad auth api_key/domeny? czy jest to albo/albo – Phil