如何使用Nodemailer发送HTML文件



在我的节点web应用程序中,我使用了nodemailer发送电子邮件

.then(user => {
const mailOptions = {
from: "Mohammad.front.dev@gmail.com",
to: user.email,
subject: "Reset Password",
html: `
<html>
<head>
<meta charset="utf-8" />
<style>
body, * {
direction: ltr;
}
</style>
</head>
<body>
<h1>You've requested a password reset!</h1>
<h3>
Click this <a href="http://localhost:8000/new-password/${token}">Link</a> to set a new password.
</h3>
<body>
</html>
`
};
req.flash("info", "Checkout your email for reset password link.");
res.redirect("/products");
transporter.sendMail(mailOptions, (error, info) => {
if(error) console.log(error);
else console.log(info);
});
...

我想发送一个html反向文件,而不是写所有的东西在一个js文件。我该怎么做呢?

您可以直接将HTML文件中的内容读取到变量中,并在mailOptions

中使用该变量。相似的问题:

  • 如何使用nodemailer发送html文件
  • 在nodemailer中传递变量到html模板

我建议使用ejb。它有一个简单的语法,你可以实现你的HTML文本"。ejs"扩展文件。

希望对你有帮助

public static send(data) {
const transport = nodemailer.createTransport({
name: process.env.SMTP_HOST,
host: process.env.SMTP_HOST,
port: process.env.SMTP_PORT,
auth: {
user: process.env.SMTP_USER_NAME,
pass: process.env.SMTP_PASSWORD,
},
pool: true, // use pooled connection
rateLimit: true, // enable to make sure we are limiting
maxConnections: 1, // set limit to 1 connection only
maxMessages: 3, // send 3 emails per second
});
var mailOptions = {
from: process.env.FROM,
html: data.html,
replyTo: process.env.REPLY_TO,
to: data.to,
subject: data.subject,
text: data.text,
};
transport.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log("Message sent: %s", info.messageId);
return;
});
}

最新更新