'use strict'; const moment = require('moment') const Core = require('@alicloud/pop-core'); const nodemailer = require('nodemailer') module.exports = function (app, opts) { const pushBySms = async ({ phone = [], templateCode, templateParam } = {}) => { try { if (phone.length) { const client = new Core({ accessKeyId: opts.sms.accessKey, accessKeySecret: opts.sms.accessSecret, endpoint: 'http://dysmsapi.aliyuncs.com',//固定 apiVersion: '2017-05-25'//固定 }); const SendSmsRes = await client.request('SendSms', { "PhoneNumbers": phone.join(','),//接收短信的手机号码。 "SignName": "飞尚尚视",//短信签名名称。必须是已添加、并通过审核的短信签名。 "TemplateCode": templateCode,//短信模板ID。必须是已添加、并通过审核的短信签名;且发送国际/港澳台消息时,请使用国际/港澳台短信模版。 "TemplateParam": JSON.stringify(templateParam)//短信模板变量对应的实际值,JSON格式。 }, { method: 'POST' }); return SendSmsRes } } catch (error) { throw error } } const pushByEmail = async ({ email = [], title, text = '', html = '', attachments = undefined } = {}) => { try { let transporter = nodemailer.createTransport({ host: opts.email.host, port: opts.email.port, secure: true, auth: { user: opts.email.sender.address, pass: opts.email.sender.password, } }); // send mail with defined transport object await transporter.sendMail({ from: `${opts.email.sender.name}<${opts.email.sender.address}>`, // sender address to: email.join(','), // list of receivers 逗号分隔字符串 subject: title, // Subject line text: text, // plain text body html: html, // html body attachments: attachments }); } catch (error) { throw error } } return { pushByEmail, pushBySms, } }