我正面临一个问题,通过nodemailer发送电子邮件给我的客户。我正在使用一个共享主机与cpanel。它不会从它发送电子邮件,而它从其他主机发送。
下面是我的代码中发送电子邮件的函数。
const transporter = mailer.createTransport({
service: "gmail",
auth: {
user: process.env.MAIL,
pass: process.env.MAIL_PASS,
},
});
app.post("/send", (req, res) => {
const data = {
name: req.body.name,
mail: req.body.mail,
phone: req.body.phone,
msg: req.body.msg,
title: "new message form contact section",
};
if (data.phone.length == 0) {
data["phone"] = "not given!";
}
ejs.renderFile("./views/mail.ejs", data, function (err, ejsout) {
transporter.sendMail({
from: process.env.MAIL,
to: "***********@gmail.com",
subject: "Support request 👮♂️",
html: ejsout,
});
res.render("msg", { msg: "Message was send successfully!" });
});
});
此外,我已经检查了我的应用程序是否可以访问.env文件并读取它。它可能会起作用。我试图重新启动应用程序,问题仍然存在。
我应该使用另一个node js库吗?
edit我已经更新了我的代码,它给了我错误消息,而使用渲染主机它发送给我,它是成功的。
ejs.renderFile("./views/mail.ejs", data, async function (err, ejsout) {
await new Promise((resolve, reject) => {
transporter.sendMail(
{
from: process.env.MAIL,
to: "*********@gmail.com",
subject: "Support request 👮♂️",
html: ejsout,
},
(err, info) => {
if (err) {
res.render("msg", {
msg: "Error there is a problem sending your message! Please Contact us via Email.",
});
} else {
res.render("msg", { msg: "Message was send successfully!" });
}
}
);
});
});
1条答案
按热度按时间u1ehiz5o1#
不要使用Gmail,而是使用您的主机电子邮件地址。
您可以通过导航您的电子邮件,然后使用电子邮件,密码,SMTP,主机轻松地在cPanel中获得您的电子邮件地址设置。