要将Express-Handlebars与Nodemailer链接起来,你需要执行以下步骤:
- 首先,确保你已经安装了Express、Express-Handlebars和Nodemailer模块。你可以使用以下命令进行安装:
npm install express express-handlebars nodemailer --save
- 在你的Express应用程序中,导入必要的模块:
const express = require('express');
const exphbs = require('express-handlebars');
const nodemailer = require('nodemailer');
- 创建一个Nodemailer传输器并设置电子邮件配置。在这个例子中,我们使用了Gmail作为邮件提供商,但你可以根据你自己的需求进行配置:
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-password'
}
});
- 配置Express应用程序并设置Handlebars为模板引擎:
const app = express();
app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');
- 创建一个路由来处理发送邮件的请求。在这个例子中,我们使用了一个GET请求来发送邮件,但你可以根据你的需求使用任何请求类型:
app.get('/send-email', (req, res) => {
// 获取表单数据
const { email, subject, message } = req.query;
// 设置邮件选项
const mailOptions = {
from: 'your-email@gmail.com',
to: email,
subject: subject,
text: message
};
// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
res.send('Error occurred');
} else {
console.log('Email sent: ' + info.response);
res.send('Email sent');
}
});
});
- 启动Express应用程序并监听指定的端口:
app.listen(3000, () => {
console.log('Server started on port 3000');
});
以上是一个基本的配置Express-Handlebars与Nodemailer链接的例子。你可以根据你的需求进行自定义和扩展。