Express使用nodemailer完成邮箱验证功能详细流程(含封装,可作自定义模块)

Express使用nodemailer完成邮箱验证功能详细流程(含封装,可作自定义模块)

记录大创项目中,在express中使用第三方模块nodemailer完成邮箱验证功能,含客户端请求验证邮件和服务端发送验证码和判断验证码。

1. 安装和引入模块

安装

npm i nodemailer --save

引入

我们先新建一个 mail.js 文件作为包含发送邮件功能的模块。

/* mail.js文件,发送邮件模块*/
const nodemailer = require('nodemailer');  

module.exports = {
    sendMail };  //最后暴露一个sendMail方法,之后会进行这个方法的封装

在其他的路由文件中:

const express = require("express");
const mail = require("./mail"); //引入我们的自定义模块

let app = express.Router();   //路由

2. 封装自定义模块

准备:

使用 nodemailer 这个模块需要我们有一个能发送邮件的邮箱,使用QQ邮箱。此外,需要我们到邮箱中开启 POP3/SMTP 服务,开启方法如下:

登录邮箱–> 邮箱首页上方点击“设置” --> 邮箱设置中点击“账户” --> 下滑找到“开启服务” -->点击POP3/SMTP服务,之后按提示完成开启。

模块中配置邮箱:

/* mail.js文件,发送邮件模块*/
//配置邮箱
let transporter = nodemailer.createTransport({
   
  host: "smtp.qq.com",
  secureConnection: true, // use SSL
  port: 465,
  secure: true, // secure:true for port 465, secure:false for port 587
  auth: {
   
    user: "XXXXXXX@qq.com",   //其他的不要动,更改邮箱
    pass: "XXXXXX",    // QQ邮箱需要使用的授权码
  },
});

封装发送邮件方法sendMail()

//参数:mail:需要发送的邮件地址;code:验证码
function sendMail(mail, code) {
   
    
  // 设置邮件内容(谁发送什么给谁)
  let mailOptions = {
   
    from: '" XXX " <XXXXXX@qq.com>',   // 发件人
    to: mail,     // 收件人
    subject: "邮箱验证"
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
首先,你需要在自己的邮箱系统中创建一个邮箱账号,并且获取该账号的 SMTP 服务器地址、端口号、用户名和密码等信息。 接下来,你需要在 Express 项目中安装邮件发送模块,比如 nodemailer。可以使用以下命令进行安装: ``` npm install nodemailer ``` 然后,你需要在 Express 项目中引入 nodemailer 模块,并且使用模块创建一个邮件发送器。示例代码如下: ``` const nodemailer = require('nodemailer'); const transporter = nodemailer.createTransport({ host: 'smtp.example.com', port: 587, secure: false, auth: { user: 'your_email@example.com', pass: 'your_email_password' } }); ``` 上面的代码中,我们使用nodemailer 的 createTransport 方法来创建了一个邮件发送器。其中,host 和 port 分别指定了 SMTP 服务器的地址和端口号,auth 中的 user 和 pass 则分别指定了账号和密码。 接下来,你就可以使用该邮件发送器来发送邮件了。示例代码如下: ``` const mailOptions = { from: 'your_email@example.com', to: 'recipient_email@example.com', subject: 'Test Email', text: 'Hello, this is a test email!' }; transporter.sendMail(mailOptions, function(error, info){ if (error) { console.log(error); } else { console.log('Email sent: ' + info.response); } }); ``` 上面的代码中,我们指定了发件人、收件人、主题和内容等信息,并且使用 transporter.sendMail 方法来发送邮件。如果发送成功,控制台将会输出 Email sent: OK。 注意,如果你的邮箱系统需要使用 SSL 或者 TLS 加密方式发送邮件,那么你需要在 createTransport 方法中将 secure 设置为 true,并且同时指定 SSL 或者 TLS 相关的选项。具体可以参考 nodemailer 的官方文档。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值