我正在尝试使用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');
});
});
答案 0 :(得分:2)
您提到您已将Sendgrid API密钥添加为env var,并导入了您的用户名和密码。你不应该这样做。只需将Sendgrid插件添加到您的Heroku帐户,如下所示:
heroku addons:create sendgrid:starter