node.js - 部署到 Heroku 时 Nodemailer 不工作
问题描述
我正在使用nodemailer
在我的服务器中发送电子邮件express
。一切都在本地主机中完美运行,但是当我在 Heroku 上部署它时,它不再工作了,看起来它nodemailer
在 Heroku 上不支持(这是我研究过的)。这是我的代码,请你帮我处理一下。非常感谢,祝你有美好的一天
This is sending single mail
exports.send_mail = (req, res, next) => {
var {subjectTo, mailList, content} = req.body;
var {attachURL} = req;
var transporter = nodemailer.createTransport({
service: 'gmail',
secure: false,
port: 465,
auth: {
user: process.env.EMAIL,
pass: process.env.PASSWORD,
},
});
var mailOptions = {
from: 'sale.shopeeholic@gmail.com',
to: mailList,
cc: mailList,
subject: subjectTo,
text: `${content} \n Attached files: ${attachURL}`,
};
transporter.sendMail(mailOptions, (err, info) => {
if (err) {
console.log(err);
return res.status(400).json({err});
} else {
return res.status(200).json({message: `Mail sent to ${mailList}`});
}
});
};
This is sending merge mail/multiple mail
exports.merge_mail = (req, res, next) => {
console.log('merge mail begin');
const mailOptionList = req.body;
// {mails, mailContent, mailTitle}
var counter = 0;
var transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.EMAIL,
pass: process.env.PASSWORD,
},
});
for (var i = 0; i < mailOptionList.length; i++) {
var mailOptions = {
from: 'sale.shopeeholic@gmail.com',
to: mailOptionList[i].mails.join(','),
cc: mailOptionList[i].mails.join(','),
subject: mailOptionList[i].mailTitle,
text: mailOptionList[i].mailContent,
};
transporter.sendMail(mailOptions, (err, info) => {
if (err) {
console.log(err);
return res
.status(400)
.json({err, message: `trouble in sending mail at index ${i}`});
} else {
console.log(`mail sent to ${JSON.stringify(mailOptionList[i].mails)}`);
counter++;
}
});
console.log(`mail sent to ${JSON.stringify(mailOptionList[i].mails)}`);
counter++;
console.log(counter);
}
if (counter === mailOptionList.length) {
return res.status(200).json({message: 'mail sent all'});
}
解决方案
可能process.env.EMAIL
和process.env.PASSWORD
未定义。您必须在 Heroku 中设置环境变量。就是这样:
推荐阅读
- ios - Audiokit 录音文件太大
- c# - 如何使用 Screaming Architecture Conventions 提供 ASP.NET Core 控制器?
- php - 无法使用 PHP Simple Html DOM 获取 html 属性
- java - 使用用户输入创建多个相同类型的对象?
- swift - 从 PaintCode 强制自定义 NSView 重绘
- c++ - 如何将汇编代码数据输出回 C++ 数组?
- python - SQL / Python - 如何从另一个表返回每个属性和子属性的计数
- ios - 如何:调试 UIWindows 是在初始应用程序激活之前创建的
- php - 我不知道这个错误或如何修复它可以有人为我修复它吗?
- sparql - 如何从某个国家/地区获取城市列表