Home >Web Front-end >JS Tutorial >A brief discussion on how to send emails with Nodejs+nodemailer

A brief discussion on how to send emails with Nodejs+nodemailer

青灯夜游
青灯夜游forward
2021-11-16 18:27:192300browse

How to send emails using nodemailer in Nodejs? The following article will show you how to use nodemailer to send emails in Nodejs. I hope it will be helpful to you!

A brief discussion on how to send emails with Nodejs+nodemailer

Features

  • Single module with zero dependencies - The code is easy to review because there are no dark corners. [Recommended learning: "nodejs Tutorial"]
  • Pay close attention to
  • security, no one likesRCE vulnerability
  • Unicode Support Use any character, including emojis
  • Windows Support - You can install it Above Sea Level on Windows just like any other module Same, no compilation dependencies. Easily use it from an Azure or Windows box
  • Use
  • HTML content, and Plain textAlternate
  • Add
  • Attachments Message
  • Embedded Image attachments for HTML content - your designs will not be blocked
  • Use
  • TLS/ STARTTLSSend email securely****
  • Different
  • Shipping methods In addition to built-in SMTP support
  • Customs
  • Plug-in support For processing messages
  • Sane
  • OAuth2 Authentication
  • Proxy For SMTP connections
  • ES6 code - No more inadvertent memory leaks due to hoistingVAR's
The email has been encapsulated and sent using different SMTP mail servers to send email messages with any content

//引入模块 nodemailer
const nodemailer = require('nodemailer')

const partnerEmail = {
  "QQ": {
    "host": "smtp.qq.com",
    "port": 465,
    "user": "",
    "pass": ""
  },
  "126": {
    "host": "smtp.126.com",
    "port": 465,
    "user": "",
    "pass": ""
  },
  "163": {
    "host": "smtp.163.com",
    "port": 465,
    "user": "",
    "pass": ""
  }
}

const config = {
  // 163邮箱 为smtp.163.com
  host: partnerEmail.QQ.host,//这是qq邮箱
  //端口
  port: partnerEmail.QQ.port,
  auth: {
    // 发件人邮箱账号
    user: partnerEmail.QQ.user,
    //发件人邮箱的授权码 这里可以通过qq邮箱获取 并且不唯一
    pass: partnerEmail.QQ.pass
  }
}

// 发送带附件的邮件
function sendMail(email,code) {
  // code 验证码
  const transporter = nodemailer.createTransport(config)

  const mail = {
    // 发件人 邮箱  &#39;昵称<发件人邮箱>&#39;
    from: &#39;<xxx@qq.com>&#39;,
    // 主题
    subject: &#39;激活验证码&#39;,
    // 收件人 的邮箱 可以是其他邮箱 不一定是qq邮箱
    to: email,
    // 内容
    text: `您的激活验证码为:${code}, 请3分钟内有效,请谨慎保管。`,
    //这里可以添加html标签
    html: &#39;<a href="https://www.baidu.com.com">baidu</a>&#39;,
    attachments:[
    {
      "filename":"xxx.mp3",
      "path":"./xxx.mp3"
    },
    {
      "filename":"xxx.txt",
      "content":"文件"
    },
    {
      "filename":"xxx.JPG",
      "path":"./xxx.JPG",
      "cid":"01"    // 插在邮件正文中的图片
    }
      ]
  }

  return new Promise((resolve, reject) => {
    transporter.sendMail(mail, function (error, info) {
      error ? reject(error) : resolve(info.response)
      transporter.close()
    })
  })
}

exports.sendMail = sendMail`

For more programming-related knowledge, please visit:

Programming video! !

The above is the detailed content of A brief discussion on how to send emails with Nodejs+nodemailer. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:juejin.cn. If there is any infringement, please contact admin@php.cn delete