bindEmail.js 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. const _ = require('lodash');
  2. const assert = require('assert');
  3. const { BusinessError, ErrorCode } = require('naf-core').Error;
  4. /**
  5. * 绑定邮箱模板
  6. * @param {Object} sender 发送人设置
  7. * @param {String} receiver 发送对象
  8. * @param {Object} params 模板参数
  9. * @prop {String} params.code 验证码
  10. */
  11. module.exports = (sender, receiver, params) => {
  12. assert(sender, '缺少发送人信息');
  13. const { from, user, pass } = sender;
  14. const code = _.get(params, 'code');
  15. if (!code) throw new BusinessError(ErrorCode.DATA_INVALID, '缺少模板需要的参数');
  16. const text = `【邮箱绑定】验证码为:${code},用于平台用户信息验证,若非本人操作,请忽略此信息。<${from}>`;
  17. const auth = { user, pass };
  18. const mailContext = {
  19. from: `"${from}" <${user}>`, // 邮件来源
  20. to: receiver, // 邮件发送到哪里,多个邮箱使用逗号隔开
  21. subject: `${from}-邮箱绑定`, // 邮件主题
  22. html: text, // html类型的邮件正文
  23. };
  24. const mailConfig = {
  25. host: 'smtp.163.com',
  26. port: 465,
  27. secure: true,
  28. auth,
  29. };
  30. return { mailContext, mailConfig };
  31. };