Thinkjs——采用nodemailer发送邮件

介绍 ThinkJS 是一款面向未来开发的 Node.js 框架,整合了大量的项目最佳实践,让企业级开发变得如此简单、高效。从 3.0
开始,框架底层基于 Koa 2.x 实现,兼容 Koa 的所有功能。
官方文档传送门点这里

步骤:
1.创建一个thinkjs项目,执行 thinkjs new [project_name] 来创建项目,如:
这里写图片描述

2.安装如下包:

npm install nodemailer –save

npm install nodemailer-smtp-transport –save
截图如下:
这里写图片描述
3.编写代码

const Base = require('./base.js');



module.exports = class extends Base {
  indexAction() {
    console.log('indexAction...');
    return this.display();
  }

  testAction() {
    console.log('test...');
  }
  sendMailAction() {
    var nodemailer = require('nodemailer');
    var transporter = nodemailer.createTransport({
      service: 'qq',
      auth: {
        user: '[email protected]',
        pass: 'wxkcsxxxxxx'//注意这个地方不是填写的QQ密码,而是开启服务:POP3/SMTP服务时的密码
      }
    });

    var mailOptions = {
      from: '[email protected]', //发送方
      to: 'xxxxx.com', //接受者,可以同时发送多个,逗号隔开
      subject: 'nodemailer email test.',
      html: '<h2>xxxxxxx</h2>'
    };

    transporter.sendMail(mailOptions, function (err, info) {
      if (err) {
        console.log(err);
        return;
      }
    });

    console.log('sendmail success.')
  }
};

注意点
一定要记得开启POP3/SMTP服务,否则会授权失败。
这里写图片描述

扩展
结合上篇,配置Thinkjs的定时任务,这里可以做一个后台数据统计,然后每天凌晨或者早上发送到自己邮箱查看相关数据。
定时任务代码如下:

module.exports = [{
    // interval: '10s',
    cron: '*/1 * * * *',
    immediate: true,
    handle: () => {
      //do something
      console.log('crontab handler.');

    }
  }, {
    cron: '*/1 * * * *',
    // interval: '3s',
    immediate: true,
    handle: 'http://127.0.0.1:8360/index/sendMail',
    type: 'all'
  }]

猜你喜欢

转载自blog.csdn.net/u014132820/article/details/82719976
今日推荐