nodeJs 邮件发送

# nodeJs 邮件发送

# 1. 初始化

npm init // 项目初始化
npm install // 安装依赖
npm install express // express 框架
npm install nodemailer  // 邮件发送

npm install nodemon -g // 建议全局安装 nodemon(已安装的忽略) 用nodemon启动

# 2. 创建入口文件 index.js

const express = require("express");
const app = express();

app.get("/sendMail", (err, res) => {
  res.send("sendMail");
});

app.listen(7001, () => {
  console.log("server 7001");
});

# 3. 引入邮件发送模块 nodemailer

// 按照 nodemailer 文档将示例代码copy下来 进行修改
// 以下是本次邮件发送简单修改后的配置 以163邮箱发送 qq邮箱接收

"use strict";
const nodemailer = require("nodemailer");

let transporter = nodemailer.createTransport({
  host: "smtp.163.com",
  port: 465, // 这里在 node_modules/nodemailer/lib/well-known/services.json 中查找对应邮箱端口
  secure: true, // true for 465, false for other ports
  secureConnection: true, // 使用了 SSL
  auth: {
    user: "xiaocking@163.com", // 邮箱账号
    pass: "输入自己的SMTP验证码" // SMTP 验证码
  }
});

transporter.sendMail(
  {
    from: '"今天天气不错" <xiaocking@163.com>', // 发送方
    to: "xiaocking@163.com", // 接收方
    subject: "Hello", // 邮件标题
    text: "Hello world? 本次验证码是123456,有效期5分钟" // 邮件 文本内容
    // html: "<b>Hello world?</b>" // 邮件插入 html内容
  },
  (err, data) => {
    if (err) {
      console.log(err);
    } else {
      console.log(data);
    }
  }
);

# 完整代码

const express = require("express");
const app = express();
const nodemailer = require("nodemailer");

app.get("/sendMail", (err, res) => {
  let transporter = nodemailer.createTransport({
    host: "smtp.163.com",
    port: 465,
    secure: true,
    secureConnection: true,
    auth: {
      user: "xiaocking@163.com",
      pass: "自己的SMTP验证码"
    }
  });

  transporter.sendMail(
    {
      from: '"今天天气不错" <xiaocking@163.com>',
      to: "xiaocking@163.com",
      subject: "Hello",
      text: "Hello world? 本次验证码是123456,有效期5分钟"
    },
    (err, data) => {
      if (err) {
        console.log(err);
        res.send("sendMail err");
      } else {
        res.send("sendMail ok");
      }
    }
  );
});

app.listen(7001, () => {
  console.log("server 7001");
});