06-egg发送邮件、短信

发送邮件

下载 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 利用的是网站对用户网页浏览器的信任。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值