写了一个静态展示页面,并通过node.js中的nodemailer实现发送邮件服务,发送结束后跳转到其他静态页面。
点击查看代码
const express = require('express');
const nodemailer = require('nodemailer');
const app = express();
// 解析 url-encoded格式的表单数据
app.use(express.urlencoded({ extended: false }));
// 解析json格式的表单数据
app.use(express.json());
// 设置静态资源访问目录
app.use(express.static('./'))
const port = 30000;
//测试用,正式上线注释掉这个
const email_host = 'smtp.163.com';
const email_from = "[email protected]";
const email_from_psw = "XXXXXX";
const email_to = "[email protected]";
// 配置 nodemailer transporter
let transporter = nodemailer.createTransport({
host: email_host,
secure: true,
auth: {
user: email_from,
pass: email_from_psw
}
});
var path = require('path');
// 发送电子邮件的终点
app.post('/send-email', (req, res) => {
var username = req.body.username
var tel = req.body.tel
var email = req.body.email
var language = req.body.language
const mailOptions = {
from: email_from,
to: email_to,
// 邮件标题
subject: req.body.subject,
//邮件内容,以html的形式输入,在邮件中会自动解析显示
html: `
<p>用户名: `+username+`</p>
<p>电话: `+tel+`</p>
<p>邮箱: `+email+`</p>
`,
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
res.status(500).json({
success: false,
message: 'Failed to send email'
});
} else {
switch (language) {
case "jp":
res.sendFile('./sendSuccessful.html', { root: path.dirname(require.main.filename) });
break;
case "en":
res.sendFile('en/sendSuccessful.html', { root: path.dirname(require.main.filename) });
break;
case "cn":
res.sendFile('cn/sendSuccessful.html', { root: path.dirname(require.main.filename) });
break;
default:
res.sendFile('./sendSuccessful.html', { root: path.dirname(require.main.filename) });
break;
}
}
});
});
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});