使用nodemailer发送邮件

2023-03-06 15:07:25 浏览数 (2)

nodemailer-npm

nodemailer-官方文档

安装 nodemailer

代码语言:javascript复制
npm install nodemailer
# 或使用 yarn
yarn add nodemailer

使用

代码语言:javascript复制
// 导入 nodemailer
import nodemailer from 'nodemailer'

// 创建实例
const transporter = nodemailer.createTransport({
  // smtp 服务器地址
  host: 'smtp.ym.163.com',
  // smtp 服务器端口 
  port: 25,
  secure: false,
  auth: {
    // 用户
    user: '123456',
    // 密钥
    pass: 'admin123'
  }
})

// 发送邮件
transporter.sendMail({
  // 发送人邮箱
  from: 'ltfei<ltfei@ltfei.cn>',
  // 接收人邮箱
  to: 'ltfei<ltfei@ltfei.cn>',
  subject: '邮件标题',
  text: "文本内容",
  html: '<h1>html内容</h1>'
})

解构 sendMail 调用时报错

代码语言:javascript复制
const { sendMail } = transporter.sendMail

报错

代码语言:javascript复制
TypeError: Cannot read property 'getSocket' of undefined

原因:this指向错误

解决办法:通过 .bind() 指定this

代码语言:javascript复制
const { sendMail }  = transporter.sendMail.bind(transporter)

参考 https://github.com/nodemailer/nodemailer/issues/759

0 人点赞