发送邮件
下载 nodemailer
npm install nodemailer --save
邮箱授权
进入邮箱 》 设置 》 账户 》POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
开启POP3/SMYP服务,获取授权码
'use strict';
const Controller = require('egg').Controller;
const nodemailer = require('nodemailer'); //引入邮件发送类
class ToolController extends Controller {
async index() {
const { ctx } = this;
//通过代理邮箱群发 邮件
const transporter = nodemailer.createTransport({
service: 'qq', // 调用qq服务器
secureConnection: true, // 启动SSL
port: 465, // 端口就是465
auth: {
user: 'xxxxxx@qq.com', // 账号
pass: 'xxxxxxxx', // 授权码,
},
});
// 邮件参数及内容
const mailOptions = {
from: 'xxxxxx@qq.com', // 发送者,与上面的user一致
to: 'xxxxx@qq.com', // 接收者,可以同时发送多个,以逗号隔开
subject: '测试的邮件', // 标题
text: '点点看', // 文本
html: '<h2>昌哥的网站:</h2><a class="elem-a" href="http://baidu.com/"><span class="content-elem-span">测试链接</span></a>',
};
// 调用函数,发送邮件
await transporter.sendMail(mailOptions, function(err, info) {
if (err) {
console.log(err);
return;
}
console.log(info);
});
ctx.body = "响应成功";
}
}
module.exports = ToolController;
发送短信
安装依赖
npm install @alicloud/sms-sdk --save
'use strict';
const Controller = require('egg').Controller;
const nodemailer = require('nodemailer'); //引入邮件发送类
const SMSClient = require('@alicloud/sms-sdk'); //引入阿里云短信发送类
class ToolController extends Controller {
async index() {
const { ctx } = this;
//通过代理邮箱群发 邮件
const transporter = nodemailer.createTransport({
service: 'qq', // 调用qq服务器
secureConnection: true, // 启动SSL
port: 465, // 端口就是465
auth: {
user: 'xxxxxxxxx@qq.com', // 账号
pass: 'xxxxxxxxxx', // 授权码,
},
});
// 邮件参数及内容
const mailOptions = {
from: 'xxxxxxx@qq.com', // 发送者,与上面的user一致
to: 'xxxxxx@qq.com', // 接收者,可以同时发送多个,以逗号隔开
subject: '测试的邮件', // 标题
text: '点点看', // 文本
html: '<h2>昌哥的网站:</h2><a class="elem-a" href="http://baidu.com/"><span class="content-elem-span">测试链接</span></a>',
};
// 调用函数,发送邮件
await transporter.sendMail(mailOptions, function (err, info) {
if (err) {
console.log(err);
return;
}
console.log(info);
});
ctx.body = "响应成功";
}
async sendsms() {
const { ctx } = this;
/*
短信服务商特别多
阿里云短信
*/
// ACCESS_KEY_ID/ACCESS_KEY_SECRET 根据实际申yourAccessKeyId请的账号信息进行替换
const accessKeyId = 'yourAccesskeyid'
const secretAccessKey = 'yourSecretAccessKey '
//初始化sms_client
let smsClient = new SMSClient({accessKeyId, secretAccessKey})
//发送短信
smsClient.sendSMS({
PhoneNumbers: '15000000000',
SignName: '登录验证',
TemplateCode: 'SMS_000000',
TemplateParam: '{"code":"6666"}'
}).then(function (res) {
let {Code}=res
if (Code === 'OK') {
//处理返回参数
console.log(res)
}
}, function (err) {
console.log(err)
})
ctx.body = "响应成功";
}
}
module.exports = ToolController;
上传
阿里云oss上传
const oss = require('ali-oss');
xxtea加密
XXTEA for Node.js
excel数据的读取
const Excel = require('exceljs');
csrf
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,
XSS
跨站脚本攻击, 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。