搭建Node.js Express项目
1.安装Express
命令:npm install express --save
2.安装nodemailer
npm install nodemailer --save
3.新建server.js,代码如下:
var express = require('express')
var nodemailer = require('nodemailer')
// 加载body-parser 处理post提交过来的数据
var bodyParser = require('body-parser')
var app = express()
var apiRoutes = express.Router()
app.use('/', express.static('./dist'))
// bodyParser 设置,自动会在req上面添加
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
apiRoutes.post('/email', function(req, res) {
var sender={
user:'[email protected]', // 发送邮箱
pass:'yyyyyyyy' // 不是密码,是授权码
}
var receive = '[email protected]' // 接收邮箱
var content= req.body.content
console.info('邮件发送内容', content)
if (content) {
// Use Smtp Protocol to send Email
var transporter = nodemailer.createTransport({
// https://github.com/andris9/nodemailer-wellknown#supported-services 支持列表
service: 'qq',// 使用了内置传输发送邮件 查看支持列表:https://nodemailer.com/smtp/well-known/
//node_modules/nodemailer/well-known/services.json 支持列表
port: 465,// SMTP 端口
secure: false,
// secureConnection: true, // 使用了 SSL
auth: {
user: sender.user,
pass: sender.pass // 这里密码不是qq密码,是你设置的smtp密码
}
})
// setup e-mail data with unicode symbols
var mailOptions = {
to:receive,// 接收邮箱
from: sender.user, // 发送邮箱, 这里的from和 上面的user 账号一样的
subject: `招生报名信息-${formData.fullName}`, // 标题
// text和html两者只支持一种
// text: content, // 标题
html: content // html 内容
}
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
res.json({
success: 0,
msg: '邮件发送失败'
})
console.log(error,info)
return
}
res.json({
success: 1,
msg: '邮件发送成功'
})
console.log('邮件发送: ' + info.response)
transporter.close()
})
} else {
res.json({
success: 0,
msg: '内容不能为空'
})
return
}
})
app.use('/api', apiRoutes)
// 前端调取的url:'/api/email';如果这里app.use('/', apiRoutes),前端调取的url:'/email'
app.listen(8081, function() {
console.info('复制打开浏览器', 'localhost:8081')
})
4.执行以上代码:$ node server.js