123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 'use strict';
- const Controller = require('egg').Controller;
- const { CrudController } = require('naf-framework-mongoose-free/lib/controller');
- const assert = require('assert');
- const nodemailer = require('nodemailer');
- const path = require('path');
- const fs = require('fs');
- const _ = require('lodash');
- class EmailController extends Controller {
- constructor(ctx) {
- super(ctx);
- const { sender } = this.app.config;
- this.sender = sender;
- }
- /**
- * 发邮件
- * @param {String} config 发送人设置
- * @param {String} receiver 发送对象(邮箱)
- * @param {String} template 模板
- * @param {Object} params 模板参数
- */
- async sendEmail() {
- const { config, template, receiver, params } = this.ctx.request.body;
- assert(config, '缺少设置');
- assert(template, '缺少模板信息');
- assert(receiver, '缺少接收人信息');
- const sender = this.sender[config];
- const { mailContext, mailConfig } = this.getTemplate(template, sender, receiver, params);
- const transporter = nodemailer.createTransport(mailConfig);
- transporter.sendMail(mailContext, (error, info) => {
- if (error) console.log(error);
- else console.log(info);
- });
- this.ctx.ok({});
- }
- getTemplate(template, sender, receiver, params) {
- const p = path.resolve('template', `${template}.js`);
- const tl = require(p);
- const f = tl(sender, receiver, params);
- return f;
- }
- }
- module.exports = CrudController(EmailController, {});
|