介绍 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: 'xxxxx@qq.com',
pass: 'wxkcsxxxxxx'//注意这个地方不是填写的QQ密码,而是开启服务:POP3/SMTP服务时的密码
}
});
var mailOptions = {
from: 'xxxxx@qq.com', //发送方
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'
}]