Sendgrid节点js不发送电子邮件。程序没有错误消息

时间:2017-01-22 04:44:24

标签: javascript node.js email sendgrid

我正在尝试使用sendgrid在myoku网站上设置电子邮件联系页面。我已经尝试了帮助邮件的代码和没有的代码;但是,两者都无法向我的电子邮件地址发送电子邮件。我在我的heroku应用程序设置中添加了sendgrid API密钥作为变量,并导入了用户名和密码。 当用户单击按钮时,我的电子邮件过程开始。我对表单元素中的post路由有一个动作,我使用body解析器从用户检索输入值(消息,他们的电子邮件地址和他们的消息)。在我的帖子路线中,我在我的email.js文件中调用了一个包含sendgrid代码的函数。

//我的html使用把手。

-O3

// POST路由的代码

<div class = "mainDiv" id = "sectionAbout">
            <h1 class="mainDivH1" id = "AboutMe">{{ ContactLi }}</h1>
                <form action="/email" method="POST">
                    <label for="fullName">{{ formName }}</label> <br><br>
                    <input type="text" name="fullName">
                    <br>
                    <br>
                    <label for="subject">{{ formSubject }}</label> <br><br>
                    <input type="text" name="subject">
                    <br>
                    <br>
                    <label for="email">{{ formEmail }}</label> <br><br>
                    <input type="text" name="email">
                    <br>
                    <br>
                    <label for="message">{{ formMessage }}</label> <br><br>
                    <textarea rows="15" cols="80" type="text" name="message id="textbox"></textarea>
                    <br>
                    <br>
                    <button id="but" type="submit">Submit</button>
                </form>
        </div>

// email.js

var email = require('../mail/email');

router.post('/email', function(req, res){
    var name = req.body.fullName;
    var emSubject = req.body.subject;
    var senderMail = req.body.email;
    var message = name + " " + req.body.message;

    var myEmail = 'examplee@yahoo.com';

    email.send(emSubject, senderMail, message, function(){
        res.redirect('/contact');   
    });
});

1 个答案:

答案 0 :(得分:2)

您提到您已将Sendgrid API密钥添加为env var,并导入了您的用户名和密码。你不应该这样做。只需将Sendgrid插件添加到您的Heroku帐户,如下所示:

heroku addons:create sendgrid:starter