Mailgun messages () - PullRequest
       8

Mailgun messages ()

1 голос
/ 06 октября 2019

Я пытаюсь отправить электронное письмо с моего сервера Node.js с помощью Mailgun.

Я использую бесплатную учетную запись, и я добавил адрес электронной почты в мой список авторизованных получателей и подтвердил его. Я проверил, что отправляющий домен активен, и что Mailgun был установлен и добавлен как зависимость.

Это соответствующий код:

const api_key = 'XXXXXXXX';
const domain = 'sandboxXXXXXXXX.mailgun.org/messages';

const mailgun = require('mailgun-js');
const mg = mailgun({apiKey: api_key, domain: domain});

const data = {
    from: 'Excited User <me@samples.mailgun.org>',
    to: 'XXXXXXXX@gmail.com',
    subject: 'Hello',
    text: 'Testing some Mailgun awesomeness!'
};

console.log('start');
mg.messages().send(data, function (error, body) {
    console.log('sending email');
    if (error) {
        console.log(error);
    }
    console.log(body);
});
console.log('end');

Я также попытался:

const domain = 'sandboxXXXXXXXX.mailgun.org';

Я ожидал, что «отправка электронной почты» будет зарегистрирована на консоли вместе с некоторым сообщением, указывающим, что электронная почта была поставлена ​​в очередь или отправлена. Фактический вывод при запуске 'firebase serve':

>  start
>  end

Все остальное работает как положено. Любая помощь будет оценена :)

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

Пожалуйста, убедитесь, что вы добавили свой IP-адрес в белый список Mailgun. У меня была похожая проблема, посмотрите мой полный ответ здесь: https://stackoverflow.com/a/58381656/3079726

0 голосов
/ 06 октября 2019

просто добавьте консоль в функцию отправки и проверьте, что вы получаете:

в вашем коде:

замените const mg = mailgun({apiKey: api_key, domain: domain});

на

const mg = new mailgun({apiKey: api_key, domain: domain});

полный код:

var Mailgun = require('mailgun-js');

//Your api key, from Mailgun’s Control Panel
var api_key = 'MAILGUN-API-KEY';

//Your domain, from the Mailgun Control Panel
var domain = 'YOUR-DOMAIN.com';


var mailgun = new Mailgun({apiKey: api_key, domain: domain});
const data = {
    from: 'Excited User <me@samples.mailgun.org>',
    to: 'XXXXXXXX@gmail.com',
    subject: 'Hello',
    text: 'Testing some Mailgun awesomeness!'
};

mailgun.messages().send(data, function (err, body) {

    if (err) {  
        console.log("got an error: ", err);
    }

    else {
        console.log(body);
    }
});
...