繁体   English   中英

MailGun 导致 401 禁止使用 nodeJs

[英]MailGun results in 401 forbidden using nodeJs

我正在尝试使用 mailgun 和 nodejs 发送 email。 我使用了 MailGun 提供给您的代码,并添加了我的域名和 api 密钥:

const mailgun = require('mailgun-js');
const DOMAIN = 'mail.mywebsite.com';
const mg = mailgun({apiKey: "this-is-myApiKey", domain: DOMAIN});
const data = {
    from: 'Support <support@mywebsite.com>',
    to: 'myemail@gmail.com',
    subject: 'Hello',
    text: 'Testing some Mailgun awesomness!'
};
mg.messages().send(data, function (error, body) {
    console.log(1, error);
    console.log(2, body);
});

这导致 401 被禁止,但是如果我更改为我的沙盒域名,那么它就可以工作。 有没有人有一些有用的提示来解决这个问题?

mail.mywebsite.com = domain name set under sending domains
this-is-myApiKey = my private api key found here: https://app.mailgun.com/app/account/security/api_keys

这可能是由于mailgun的域名不正确。 确保您使用正确的 apikey 和域名。

可能是您的域名问题。

const mailgun = require("mailgun-js")({
    apiKey: 'your_api_key',
    domain: 'mg.yourDomainName.com'
});

const data = {
    from: "no-reply@yourDomainName.com",
    to: 'abcd@gmail.com',
    subject: 'Hello',
    text: 'Testing some Mailgun awesomeness!'
  };

mailgun.messages().send(data, (error, body) => {
    console.log(body);
    if(!error) 
    res.status(200).json({
            message:"mail sent"
        })
});

这是因为在新的邮枪 api v3 中,您必须采用不同的方法:

请参阅下面的示例代码:

        var formData = require('form-data');
        const Mailgun = require('mailgun.js');
        const mailgun = new Mailgun(formData);
        const mg      = mailgun.client({
            username: 'api', 
            key: process.env.EMAIL_MAILGUN_API_KEY
        }); 
        
        mg.messages.create(process.env.EMAIL_MAILGUN_HOST, {
            from: "sender na,e <"+process.env.EMAIL_FROM+">",
            to: ["dan@dominic.com"],
            subject: "Verify Your Email",
            text: "Testing some Mailgun awesomness!",
            html: "<h1>"+req+"</h1>"
          })
          .then(msg => {
            console.log(msg);
            res.send(msg);
          }) // logs response data
          .catch(err => { 
            console.log(err);
            res.send(err);
          }); // logs any error

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM