nodejs实现邮件发送

需要安装的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文件链接:
posted @ 2019-07-16 20:38  油麦菜大佬  阅读(1373)  评论(0编辑  收藏  举报