123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- '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, {});
|