【发布时间】:2021-09-11 04:09:18
【问题描述】:
我有一个用于发送电子邮件的 nodejs 代码,当我在本地运行它时有效,但当我将它部署到 heroku 时无效
这是有问题的代码
app.post('/contact', urlencodedParser, function(req, res) {
console.log("post contact page");
console.log("this is req: ");
console.log(req.body);
let mailOpts, smtpTrans;
smtpTrans = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'email',
pass: 'password'
}
});
mailOpts = {
from: req.body.fname + ' <' + req.body.email + '>',
to: 'email',
subject: 'New message from contact form at your portfolio page',
text: `${req.body.fname} (${req.body.email}) says: \n \n ${req.body.msg}`
};
smtpTrans.sendMail(mailOpts);
res.render("pages/Contact");
});
我该怎么办?这是我的代码还是 heroku 部署的问题?
【问题讨论】:
-
代码有效,因此可能是环境问题。确保您在调用中查找返回码。 gmail如何解析到服务器?您的应用程序是否连接或 Heroku 是否阻止出站连接?你得到你的控制台输出了吗?你有日志吗?
-
如何检查这两个问题?
-
我从未使用过 Heroku,但如果 ti 只是一个 linux,您可以使用 tcpdump 来查看是否有任何出站流量。不过,从日志开始,然后检查所有返回码。 nodemailer.com/smtp 说有记录器和调试选项可以很好地启用。此外,您泄露了凭据,如果是真的,请更改它们。
-
nodemailer.com/usage 显示您可以在 sendMail 上启用的回调。
标签: node.js nodemailer