57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
const Dm20151123 = require('@alicloud/dm20151123')
|
|
const OpenApi = require('@alicloud/openapi-client')
|
|
const TeaUtil = require('@alicloud/tea-util')
|
|
|
|
let client = null
|
|
|
|
function createClient() {
|
|
if (client) return client
|
|
|
|
const config = new OpenApi.Config({
|
|
accessKeyId: process.env.ALIYUN_ACCESS_KEY_ID,
|
|
accessKeySecret: process.env.ALIYUN_ACCESS_KEY_SECRET,
|
|
})
|
|
config.endpoint = process.env.ALIYUN_DM_ENDPOINT || 'dm.aliyuncs.com'
|
|
client = new Dm20151123.default(config)
|
|
return client
|
|
}
|
|
|
|
async function sendEmailCode(toAddress, code) {
|
|
try {
|
|
console.log('[Email] Sending code to:', toAddress)
|
|
console.log('[Email] Using template ID:', process.env.ALIYUN_DM_TEMPLATE_ID)
|
|
console.log('[Email] Using account name:', process.env.ALIYUN_DM_ACCOUNT_NAME)
|
|
|
|
const dmClient = createClient()
|
|
|
|
const template = new Dm20151123.SingleSendMailRequestTemplate({
|
|
templateData: { code },
|
|
templateId: process.env.ALIYUN_DM_TEMPLATE_ID,
|
|
})
|
|
|
|
const request = new Dm20151123.SingleSendMailRequest({
|
|
template,
|
|
accountName: process.env.ALIYUN_DM_ACCOUNT_NAME,
|
|
addressType: 1,
|
|
replyToAddress: false,
|
|
toAddress,
|
|
subject: process.env.ALIYUN_DM_DEFAULT_SUBJECT || '登录验证码',
|
|
})
|
|
|
|
console.log('[Email] Request prepared:', JSON.stringify(request, null, 2))
|
|
|
|
const runtime = new TeaUtil.RuntimeOptions({})
|
|
await dmClient.singleSendMailWithOptions(request, runtime)
|
|
|
|
console.log('[Email] Send success')
|
|
return { success: true }
|
|
} catch (error) {
|
|
const message = error.message || String(error)
|
|
console.error('[Email] Send error:', message)
|
|
console.error('[Email] Error details:', error)
|
|
return { success: false, message }
|
|
}
|
|
}
|
|
|
|
module.exports = { sendEmailCode }
|