【问题标题】:Mailgun messages().send having no apparent effectMailgun messages().send 没有明显效果
【发布时间】:2020-02-03 19:56:02
【问题描述】:

我正在尝试使用 Mailgun 从我的 Node.js 服务器发送电子邮件。

我使用的是免费帐户,并且我已将目标电子邮件添加到我的授权收件人列表并进行了验证。 我检查了发送域是否处于活动状态,并且 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

其他一切都按预期工作。任何帮助将不胜感激:)

【问题讨论】:

  • 你能解决这个问题吗?

标签: node.js mailgun


【解决方案1】:

请确保您已将您的 IP 地址添加到 Mailgun 的白名单中。 我遇到了类似的问题,请在此处查看我的完整答案:https://stackoverflow.com/a/58381656/3079726

【讨论】:

    【解决方案2】:

    您必须将目标电子邮件地址输入authorized recipient,以便他可以接受电子邮件。

    如果您已将电子邮件地址配置为授权收件人,但仍然找不到您发送的测试电子邮件,请检查垃圾邮件/垃圾邮件部分(我在我的 gmail 中将它们放在垃圾邮件中帐户)。

    【讨论】:

      【解决方案3】:

      只需在发送功能中添加控制台登录并检查您得到的内容:

      在您的代码中:

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

      【讨论】:

      • 我可能会错误地解释您的答案,但我相信这已经包含在最初的问题中。运行您的代码时,控制台没有输出。
      • 添加“new”关键字并没有改变任何东西,同样的问题仍然存在。
      猜你喜欢
      • 2015-08-30
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      相关资源
      最近更新 更多