u
This commit is contained in:
parent
292e138732
commit
d27531ea00
36
messenger.js
36
messenger.js
@ -14,8 +14,8 @@ module.exports = {
|
||||
// 或者如果smtp参数已经确定,就可以直接定义 sendMail: Bluebird.promisify(Smtp.sendMail).bind(Smtp)
|
||||
async sendMail (messageObject, smtp = my.envar?.SMTP || wo?.envar?.SMTP) {
|
||||
if (!smtp?.host) {
|
||||
console.error({ _at: new Date().toJSON(), _state: 'SMTP_CONFIG_MALFORMED' }, '\n,')
|
||||
return { _state: 'SMTP_CONFIG_MALFORMED' }
|
||||
globalThis.wo?.ccerror?.({ _state: 'SMTP_CONFIG_MALFORMED', smtp })
|
||||
return { _state: 'SMTP_CONFIG_MALFORMED', smtp }
|
||||
}
|
||||
// messageObject: { from, to, cc, bcc, subject, text, html, sender, replyTo, inReplyTo }
|
||||
sender.smtpTransporter = sender.smtpTransporter || NodeMailer.createTransport(smtp)
|
||||
@ -35,15 +35,15 @@ module.exports = {
|
||||
}
|
||||
*/
|
||||
if (result.messageId && result.response === '250 Ok') {
|
||||
console.log({ _at: new Date().toJSON(), _state: 'MSG_SENT_SUCCESS', subject: messageObject.subject, ...result.envelope }, '\n,')
|
||||
globalThis.wo?.cclog?.({ _state: 'MSG_SENT_SUCCESS', subject: messageObject.subject, ...result.envelope })
|
||||
return { _state: 'MSG_SENT_SUCCESS' }
|
||||
} else {
|
||||
console.log({ _at: new Date().toJSON(), _state: 'MSG_SEND_FAIL', subject: messageObject.subject, ...result }, '\n,')
|
||||
globalThis.wo?.cclog?.({ _state: 'MSG_SEND_FAIL', subject: messageObject.subject, ...result })
|
||||
return { _state: 'MSG_SEND_FAIL' }
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error({ _at: new Date().toJSON(), _state: 'MSG_SEND_ERROR', subject: messageObject.subject, error }, '\n,')
|
||||
globalThis.wo?.ccerror?.({ _state: 'MSG_SEND_ERROR', subject: messageObject.subject, error })
|
||||
return { _state: 'MSG_SEND_ERROR' }
|
||||
})
|
||||
},
|
||||
@ -58,24 +58,28 @@ module.exports = {
|
||||
signName, // for 'ALIYUN', 'TENCENT'
|
||||
appid, // for 'UNICLOUD', 'TENCENT'
|
||||
} = {}) {
|
||||
let result
|
||||
if (/^\+\d+-\d+$/.test(phone)) {
|
||||
if (!config?.vendor) {
|
||||
console.error({ _at: new Date().toJSON(), _state: 'SMS_CONFIG_MALFORMED', config }, '\n,')
|
||||
return { _state: 'SMS_CONFIG_MALFORMED', phone, config }
|
||||
result = { _state: 'SMS_CONFIG_MALFORMED', phone, config }
|
||||
} else if (config.vendor === 'DXTON') {
|
||||
return await this.sendSmsDxton({ phone, config, msg })
|
||||
result = await this.sendSmsDxton({ phone, config, msg })
|
||||
} else if (config.vendor === 'ALIYUN') {
|
||||
return await this.sendSmsAliyun({ phone, config, msgParam, msgTemplate, signName })
|
||||
result = await this.sendSmsAliyun({ phone, config, msgParam, msgTemplate, signName })
|
||||
} else if (config.vendor === 'TENCENT') {
|
||||
return await this.sendSmsTencent({ phone, config, msgParam, msgTemplate, appid, signName })
|
||||
result = await this.sendSmsTencent({ phone, config, msgParam, msgTemplate, appid, signName })
|
||||
} else if (config.vendor === 'UNICLOUD') {
|
||||
return await this.sendSmsUnicloud({ phone, config, msgParam, msgTemplate, appid })
|
||||
result = await this.sendSmsUnicloud({ phone, config, msgParam, msgTemplate, appid })
|
||||
} else {
|
||||
return { _state: 'SMS_UNKNOWN_VENDOR', error: { unknownVendor: config.vendor } }
|
||||
result = { _state: 'SMS_UNKNOWN_VENDOR', error: { unknownVendor: config.vendor } }
|
||||
}
|
||||
} else {
|
||||
return { _state: 'SMS_INVALID_PHONE', error: {} }
|
||||
result = { _state: 'SMS_INVALID_PHONE', error: {} }
|
||||
}
|
||||
|
||||
globalThis.wo?.cclog?.({ phone, signName, msgParam, msgTemplate, ...result })
|
||||
|
||||
return result
|
||||
},
|
||||
|
||||
/* 使用 dxton.com 的短信接口 http://www.dxton.com/help_detail/38.html
|
||||
@ -136,12 +140,10 @@ module.exports = {
|
||||
if (Code === 'OK') {
|
||||
return { _state: 'MSG_SENT_SUCCESS' }
|
||||
} else {
|
||||
console.error({ _at: new Date().toJSON(), _state: 'MSG_SEND_FAIL', error: result }, '\n,')
|
||||
return { _state: 'MSG_SEND_FAIL', error: result }
|
||||
}
|
||||
},
|
||||
function (error) {
|
||||
console.error({ _at: new Date().toJSON(), _state: 'MSG_SEND_ERROR', error }, '\n,')
|
||||
return { _state: 'MSG_SEND_ERROR', error }
|
||||
}
|
||||
)
|
||||
@ -165,12 +167,10 @@ module.exports = {
|
||||
if (Code === 'Ok') {
|
||||
return { _state: 'MSG_SENT_SUCCESS' }
|
||||
} else {
|
||||
console.error({ _at: new Date().toJSON(), _state: 'MSG_SEND_FAIL', error: { SendStatusSet, RequestId } }, '\n,')
|
||||
return { _state: 'MSG_SEND_FAIL', error: { SendStatusSet, RequestId } }
|
||||
}
|
||||
},
|
||||
function (error) {
|
||||
console.error({ _at: new Date().toJSON(), _state: 'MSG_SEND_ERROR', error }, '\n,')
|
||||
return { _state: 'MSG_SEND_ERROR', error }
|
||||
}
|
||||
)
|
||||
@ -191,12 +191,10 @@ module.exports = {
|
||||
return { _state: 'MSG_SENT_SUCCESS', result } // { code:0, errCode:0, success:true }
|
||||
} else {
|
||||
// 错误码参见 https://doc.dcloud.net.cn/uniCloud/sms/dev.html
|
||||
console.error({ _at: new Date().toJSON(), _state: 'MSG_SEND_FAIL', error: result }, '\n,')
|
||||
return { _state: 'MSG_SEND_FAIL', result }
|
||||
}
|
||||
} catch (error) {
|
||||
// 调用失败 例如 {"code":undefined,"msg":"短信发送失败:账户余额不足"}
|
||||
console.error({ _at: new Date().toJSON(), _state: 'MSG_SEND_ERROR', error }, '\n,')
|
||||
return {
|
||||
_state: 'MSG_SEND_ERROR',
|
||||
error, // { errCode, errMsg }
|
||||
|
Loading…
Reference in New Issue
Block a user