08.第三方模块之nodemailer

2019-09-25  本文已影响0人  讲武德的年轻人

第三方模块和第三方模块类似,第三方模块一般也是个人写的,只不过可以公开被别人使用。
其实就是一个npm插件。
去这里下载:https://www.npmjs.com
搜索nodemailer
nodemailer帮助文档https://nodemailer.com/about/

'use strict';
const nodemailer = require('nodemailer');
// 创建发送邮件的请求对象
let transporter = nodemailer.createTransport({
    host: 'smtp.qq.com', // 发送方邮箱
    port: 465,  // 端口号
    secure: true, // true for 465, false for other ports
    auth: {
        user: '2495730727@qq.com', // 发送方邮箱地址
        pass: 'rwjmlzsgjqvoeafe' // smtp验证码
    }
});

// 邮件信息
let mailobj = {
    from: '"Fred Foo 👻" <2495730xxx@qq.com>', // 发件人
    to: 'songxxxx@xxxx.com.cn, gengxxxx2016@163.com', // 收件人
    subject: 'Hello ✔', // 邮件主题
    text: 'Hello hello hello hello', // 邮件正文,必须是字符串
    // html: '<b>Hello world?</b>' // 邮件正文
}

// 发送邮件
transporter.sendMail(mailobj);

text和html只能选择其中一个发送。



那我怎么知道我有没有发送成功呢???
当然是通过回调函数实现啦!!!
将上面的代码的最后一行稍微改动下:

transporter.sendMail(mailobj,(err,data)=>{
    console.log(err);
    console.log(data);
});
执行

把上述发邮件功能模块化

方法一
function send(mail,code){
    'use strict';
    const nodemailer = require('nodemailer');
    // 创建发送邮件的请求对象
    let transporter = nodemailer.createTransport({
        host: 'smtp.qq.com', // 发送方邮箱
        port: 465,  // 端口号
        secure: true, // true for 465, false for other ports
        auth: {
            user: '2495730xxx@qq.com', // 发送方邮箱地址
            pass: 'rwjmlzsgjqvoeafe' // smtp验证码
        }
    });
    // 邮件信息
    let mailobj = {
        from: '"小花生👻" <2495730xxx@qq.com>', // 发件人
        to: mail, // 收件人
        subject: 'Hello ✔', // 邮件主题
        text: `您的验证码是${code}`, // 邮件正文
        // html: '<b>Hello world?</b>' // 邮件正文
    }
    // 发送邮件
    transporter.sendMail(mailobj,(err,data)=>{
        console.log(err);
        console.log(data);
    });
}
module.exports=send
// send('gengsong2016@163.com,songgeng@cslc.com.cn','123456');
const sendmail=require('../utils/mail')
sendmail('gengsong2016@163.com,songgeng@cslc.com.cn','123456');
方法二
"use strict";
const nodemailer = require("nodemailer");

// 创建发送邮件的对象
  let transporter = nodemailer.createTransport({
    host: "smtp.qq.com",//发送方邮箱 qq 通过lib/well-know/service.json
    port: 465, //端口号
    secure: true, // true for 465, false for other ports
    auth: {
      user: '352186537@qq.com', // 发送方的邮箱地址
      pass: 'kxlfqavqcooabgfd' //  smtp 验证码
    }
  });


  function send(mail,code){
      // 邮件信息
      let  mailobj={
        from: '"今天天气不错" <352186537@qq.com>', // sender address
        to: mail, // list of receivers
        subject: "1902", // Subject line
        text: `您的验证码是${code},有效期五分钟`, // plain text body
        //html: "<b>Hello world?</b>" // html body
      }
      return new Promise((resolve,reject)=>{
        transporter.sendMail(mailobj,(err,data)=>{
          //  console.log(err)
          //  console.log(data)
            if(err){
              reject()
            }else{
              resolve()
            }
        });
      })
      
  }
// 抛出对象
  module.exports={send}
const Mail=require('../utils/mail')
Mail.send(mail,code)
上一篇下一篇

猜你喜欢

热点阅读