欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【node】nodemailer 实现邮件发送

程序员文章站 2024-03-20 11:20:46
...

nodemailer 邮件发送功能可用于用户注册等业务场景,高效、低成本。

我们这里使用腾讯的邮件服务。登录QQ邮箱,点击设置-帐户,开启SMTP服务并生成制授权码,复制授权码,后面要用。这个授权码要安全保存,不要外泄。

【node】nodemailer 实现邮件发送

 配置文件 config.js 

//config.js
export default {
  smtp: {
    get host() {
      return 'smtp.qq.com'  
    },
    get user() {
      return 'aaa@qq.com'  // 这里输入你申请授权的QQ邮箱
    },
    get pass() {
      return 'xxx'   // 这里输入你的授权码
    }
  }
}

安装 nodemailer

npm i -D nodemailer

 

// 注册邮件发送
import nodeMailer from 'nodemailer'
import Email from '../dbs/config'

// 发件服务相关配置及发件人邮箱、授权码
let transporter = nodeMailer.createTransport({
    host: Email.smtp.host,
    port: 587,
    secure: false,  // 开启安全连接
    auth: {
      user: Email.smtp.user,
      pass: Email.smtp.pass
    }
  })
  // ***,过期时间、收件人邮箱、收件人用户名
  let ko = {
    code: Email.smtp.code(),
    expire: Email.smtp.expire(),
    email: ctx.request.body.email,
    user: ctx.request.body.username
  }
  // 邮件内容
  let mailOptions = {
    from: `"认证邮件"<${Email.smtp.user}>`,
    to: ko.email,
    subject: '《我就随便写个主题吧》***',
    html: `您在《我就随便写个主题吧》中注册,您的邀请码是${ko.code}`
  }
  // 发送邮件
  await transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
      return console.log('error')
    } else {
      return console.log('success')
    }
  })