通过Mailgun发送电子邮件

3
我会尽力帮助您将以下内容翻译成中文:

我正尝试使用Node.js Express和Mailgun-js向我的网站添加一个Mailgun联系表单,但是无论如何我都无法让它工作。我的API密钥和域名都很好,因为我已经在Mailgun-js的官方Github页面上使用示例代码进行了测试。所以我想知道以下代码片段是否有任何问题。(路由和其他所有内容都可以完美地运行)

./models/mailer.js

            var api_key = 'xxxxxxx';
            var domain = 'xxxxxxxx';

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

            exports.sendOne = function (locals,callback) {

                console.log(locals);
                var mailgun = new Mailgun({apiKey: api_key,domain:domain});

                var data = {
              from: 'xxxxxx',
              to: 'myemail@hotmail.com',
              subject: 'Hello World',
              text: 'Testing some Mailgun awesomness!'
            };

                mailgun.message().send(data,function (err,body) {
                        if(err) return callback(err);
                        console.log('message sent');
                        callback(null,body);
                });
            };

./controllers/contactCtrl.js

    var mailer = require('../models/mailer');

    exports.contact = function (req,res,next) {
        res.render('contact');
    };


    exports.receiveMessage = function (req,res,next) {

            mailer.sendOne(req.body,function (err,body) {
                if(err) return next(err);
                console.log(body);
                res.send({message:'Your message has been successfully sent'});
            });

    };

非常感谢你:)

看起来不错。什么会出问题? - Plato
嗯...我只是没有收到邮件,在前端也没有收到消息“您的消息已成功发送”。 - Ethan Yang
你验证了你的域名在Mailgun是否处于激活状态吗?如果没有,发送邮件将不可能。你尝试过调试代码吗,代码看起来没问题。调试代码,看看它是否到达了最后一行代码。 - sunitj
我正在使用Mailgun沙盒域名,并且它已经激活了。是的,我试着对其进行调试,并且它确实到达了mailgun.message().send()这一部分。嗯...有没有好的调试工具可以使用?抱歉,我对nodejs还比较陌生,之前一直在使用console.log进行调试。 - Ethan Yang
1个回答

0

mailgun.message()

你少了一个 "s"。应该是 mailgun.messages()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接