
nodemailer实现node发送邮件
发布日期:2021-05-08 23:09:44
浏览次数:20
分类:博客文章
本文共 2327 字,大约阅读时间需要 7 分钟。
作为一个前端er,利用node独立做一些全栈小项目,是很有效率和必要的。
需要:
做一个活动报名页面,用户填好的表单需要被工作人员收到,一想到把数据存数据库,还需要给工作人员写一个管理页面就觉得很麻烦。
把表单数据通过邮件方式发送到相关人邮箱,很讨巧,很节约开发成本,就这样做。
核心模块:nodemailer
看看package.json:
{ "devDependencies": { "gulp": "^3.8.11", "gulp-imagemin": "^2.2.1", "gulp-less": "^3.0.3", "gulp-notify": "^2.2.0", "gulp-uglify": "^1.2.0", "gulp-watch": "^4.2.4", "require-dir": "^0.3.0" }, "dependencies": { "body-parser": "^1.15.0", "express": "^4.13.4", "nodemailer": "^2.3.0", "swig": "^1.4.2" }}
- devDependencies里全是gulp模块
- 引入body-parser模块可以通过req.body.xx获取到表单的数据
- 常规使用express
- nodemailer用来支持发送邮件
- swig是node的一个模板引擎
使用nodemailer:
1.这里用到的是QQ邮箱,配置好地址和自己的账户名和密码
var nodemailer = require("nodemailer");var smtpTransport = nodemailer.createTransport({ host: 'smtp.exmail.qq.com', port: 465, secure: true, // use SSL auth: { user: 'yourqq@qq.com', pass: 'password' }});
2.from和to设置邮件发送者和收件者的邮箱地址,
subject邮件title
html邮件内容
smtpTransport.sendMail执行发送,这里的res是express router的响应参数,这里只贴主要代码,详细代码最后发github地址
var mailOptions = { from: "yourqq@qq.com", to: "toqq@qq.com", subject: "node邮件", html: "姓名: "+name+""+ "性别: " + sex + ""+ "电话: " + phone + ""+ "邮箱: " + email + ""+ "QQ: " + qq + ""+ "年龄: " + age + ""+ "联系地址:" + address + ""+ "所在院校及专业:" + school + ""+ "学校地址:" + schooladdress + ""+ "跟我们说说你的大学吧:" + des + ""+ "个人书单及评价:" + book + ""}smtpTransport.sendMail(mailOptions, function(err, resp){ if(err){ res.send({ code: 201, msg: "报名失败,请重试" }) }else{ res.send({ code: 200, msg: "报名成功" }) } smtpTransport.close();//关闭连接池});
其实很简单,核心代码就是这些~
绑定路由:app.get('/', function(req, res) { res.render('index');})app.get('/success', function(req, res) { res.render('success');})app.post('/join', function(req, res){ var name = req.body.name, sex = req.body.sex, phone = req.body.phone, email = req.body.email, qq = req.body.qq, age = req.body.age, address = req.body.address, school = req.body.school, schooladdress = req.body.schooladdress, des = req.body.des, book = req.body.book; //next do send})
前端当然也有一些事情要做,写好页面,验证表单,提交表单。
当前只有两个页面,报名页面和报名成功页面。页面内容不再叙述,详情看下面git地址需要注意的问题:
- 用不同的邮箱发送邮件,需要找到相应官方api地址
- 邮件内容的html是有一定规则的,每个三方邮箱的规则都不同,可以查阅相关通用资料
发表评论
最新留言
不错!
[***.144.177.141]2025年03月23日 06时14分34秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
virtualbox中 Kali Linux安装增强功能
2019-03-06
virtualbox中 Ubuntu挂载共享文件夹
2019-03-06
Python 内置函数笔记
2019-03-06
BootStrapTable 错误
2019-03-06
PHP 配置文件
2019-03-06
PHP 脚本不报错
2019-03-06
代码整洁之道小结
2019-03-06
悲观锁与乐观锁
2019-03-06
js new Date 创建时间默认是8点
2019-03-06
Python实现cmd命令连续执行
2019-03-06
罗马数字
2019-03-06
IO多路复用小故事
2019-03-06
纠错码简介
2019-03-06
码云 Pages 搭建
2019-03-06
《论可计算数及其在判定上的应用》简单理解
2019-03-06
中国剩余定理证明过程
2019-03-06
kafka告警简单方案
2019-03-06
java接口的应用举例
2019-03-06
java接口中多继承的问题
2019-03-06
java中Object.equals()简单用法
2019-03-06