需要安装的node模块
nodemailer

新建项目目录 mail-test
进入这个项目里使用终端初始化package.json(npm init)
安装express和nodemailer并保存安装信息到package.json文件中
cnpm i express nodemailer -S

安装完后package.json里就这样

我全局安装了nodemon, 在package.json中的main是index.js ,所以我新建index.js作为入口文件 使用nodemon能在项目文件修改后自动重启项目
在index.js里引入express并实例化express对象
引入nodemailer

开启一个服务器 然后使用express的路由 在路由里调用发邮件的方法

使用nodemon命令运行项目

nodemon

浏览器访问/sendMail路由

接口跑通了,可以开始写发邮件的事件了


①配置邮件服务器连接信息

nodemailer.createTransport() 方法 往里传一个对象,对象里有参数
service 项 使用什么邮箱就写什么邮箱的名字 用qq的就写qq 用163的就写163
secure 项 安全的发送模式 true
auth 项 登录验证 user 是发邮件的用户名 pass是发邮件的授权码(没有授权码的登录网页版邮箱获取,在邮箱的IMAP/SMTP服务里打开 获得授权码)
let transporter = nodemailer.createTransport({
service:"163", // 邮箱
secure:true, // 安全的发送模式
auth:{
user:"weasth@163.com", // 发件人邮箱
pass:"授权码"// 授权码
}
})

②配置邮件选项
mailOptions是一个对象
from 项 从哪个账号发送,和第一步中的发件人一致
to 项 要接收的邮箱,多个收件人用逗号隔开
cc 项 抄送发送的邮箱,用不着不写
bcc 项 密送的邮箱,用不着不写
subject 项 邮件的标题
text 项 邮件的内容
let mailOptions = {
from:"weasth@163.com",
to:"991375252@qq.com",
subject:"测试邮件主题",
text:"测试邮件正文"
}

③发送

使用transpoter.sendEmail()方法 这个方法接收两个参数,第一个参数是 mailOptions 第二个参数是回调函数 回调函数第一个参数是错误信息 第二个参数是返回的内容
transporter.sendMail(mailOptions,(err,data) => {
if(err){
console.log(err);
res.json({status:400,msg:"send fail....."})
}else{
console.log(data);
res.json({status:200,msg:"邮件发送成功....."})
}
})


配置完成,现在在浏览器中访问/sendMail 看看效果

浏览器中显示发送成功,现在到邮箱里看看有没有这个邮件

收到邮件了 至此 实现了用nodejs发送邮件


demo文件链接:

最新文章

  1. iOS UIActivityIndicatorView
  2. Excel怎样从一串字符中的某个指定“字符”前后截取字符及截取字符串常用函数
  3. 1.NSNotification|远程通知|本地通知|激光推送
  4. JavaScript学习11 数组排序实例
  5. where过滤字句
  6. Decision Boundaries for Deep Learning and other Machine Learning classifiers
  7. Python下载Bing主页图片
  8. AngularJS 初学笔记(理论基础)
  9. Enterprise architect 类图加时序图
  10. javascript常用函数封装——运动、cookie、ajax、获取行内样式兼容写法、拖拽
  11. Postfix - Extmail 邮箱系统
  12. This Jenkins instance appears to be offline
  13. 转载-iOS SDK开发
  14. Android Manifest文件
  15. Sum Root to Leaf Numbers leetcode java
  16. juery 安全加固 集合
  17. ZOJ 3211dream city dp(效率优化)
  18. socket数据收发
  19. reservoid sample 蓄水池问题
  20. centos7 vim显示行号

热门文章

  1. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_09-课程详情页面静态化-静态页面测试
  2. CDS视图篇 1
  3. 实例解析Python设计模式编程之桥接模式的运用
  4. (一)Rational Rose 2007 下载安装
  5. ansible软件部署
  6. 简单的api实现以及动态函数调用
  7. Egret入门学习日记 --- 第八篇(书中 2.0~2.6节 内容)
  8. UIPath工具取得多个文件的方法
  9. Asp.Net Core文件上传
  10. java23种设计模式之九: 抽象工厂方法模式