当前位置: 首页 > 后端技术 > Node.js

如何使用Node发送邮件

时间:2023-04-03 16:20:39 Node.js

使用Nodemailer发送邮件。最近实现了用户注册的功能。有这样一个需求:用户填写信息点击注册后,服务器会向用户注册的邮箱发送激活链接,用于激活账号。Node写的,第一次做后端发送邮件的功能。折腾了半天,终于实现了,哈哈。Node生态系统中也有很多用于发送电子邮件的插件。我用主流的Nodemailer来做。如果要使用SMTP协议,还必须引入Nodemailer的一个模块nodemailer-smtp-transportNodemailer官网首先创建一个文件夹,cd到这个文件夹安装Nodemailer和nodemailer-smtp-transportnpminodemailernodemailer-smtp-transport--saveinthefile在根目录新建一个test.js文件。结合官网给出的例子,我们先搭建一个简单的例子//test.jsconstnodemailer=require('nodemailer')constsmtpTransport=require('nodemailer-smtp-transport')//1.创建consttransport=nodemailer.createTransport(smtpTransport({host:'xxx.com',//查看发送邮箱开放主机端口:xx,//查看发送邮箱开放端口secureConnection:true,//使用SSLauth:{user:'xxx@xxx.com',//发送邮件邮箱pass:'xxxxxx'//发送邮件邮箱key}}));//2.邮件具体信息constmailOptions={from:'"Xiaoming"',//发送邮件的邮箱与上面用户相同to:'xxx@xxx.com',//接收邮件的邮箱,如果多一个,逗号分隔subject:'Thisisatestemail',//邮件标题html:'

Thisisatestemailsentbynodejs.

'//邮件内容,可以是html};//3.发送邮件transport.sendMail(mailOptions,function(error,info){if(error){console.log(error);}else{console.log('消息已发送:'+info.response);}});这个基本框架就搭建好了,其实重要的是如何获取主机端口和创建时传入的用户名邮箱有两种,QQ邮箱,阿里的企业邮箱,QQ邮箱,查了帮助QQ邮箱中心,得知host是smtp.qq.comport是465user,就是你要发邮件的邮箱pass。您需要开启邮箱的SMTP功能。打开方法是在QQ邮箱帮助中心打开的时候,他会发给你一串英文,这个就是我们需要在这里测试的通行证!到终端执行nodetest.js可以看到打印的日志。如果显示OK,则去接收邮箱查看是否有邮件。阿里企业邮箱注意这里是企业邮箱,因为我在阿里云上买的域名,发到企业邮箱,所以想着试试看。在他的帮助文档中也可以查到host是smtpdm.aliyun.comport是25user,就是你要发邮件的邮箱地址。要获取通行证,您需要配置电子邮件地址。如果您使用SMTP发送邮件,如果您没有发送邮件的域名,您需要自己创建一个新的域名。创建完成后配置域名,链接并验证发送域名。验证成功后,点击发送地址,点击设置SMTP密码(注意:这里一定要设置SMTP密码,否则还是打不开)pass就是你刚才输入的SMTP密码,去测试一下吧~