'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'); // 发邮件 class EmailController extends Controller { constructor(ctx) { super(ctx); const { sender } = this.app.config; this.sender = sender; } async sendEmail() { const { template, receiver, params } = this.ctx.request.body; assert(template, '缺少模板信息'); assert(receiver, '缺少接收人信息'); const text = this.getTemplate(template, params); const config = { host: 'smtp.163.com', port: 465, secure: true, auth: this.sender, }; const mailOptions = { from: `"天恩活泉" <${this.sender.user}>`, // 邮件来源 to: receiver, // 邮件发送到哪里,多个邮箱使用逗号隔开 subject: '天恩活泉-邮箱绑定', // 邮件主题 html: text, // html类型的邮件正文 }; const transporter = nodemailer.createTransport(config); transporter.sendMail(mailOptions, (error, info) => { if (error) console.log(error); else console.log(info); }); this.ctx.ok(); } getTemplate(template, params) { const p = path.resolve('template', `${template}.js`); const tl = require(p); const f = tl(params); return f; } } module.exports = CrudController(EmailController, {});