oak-general-business/lib/utils/email/index.js

41 lines
1.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerEmail = registerEmail;
exports.getEmail = getEmail;
exports.getOrigin = getOrigin;
exports.sendEmail = sendEmail;
const tslib_1 = require("tslib");
const assert_1 = require("oak-domain/lib/utils/assert");
const node_mailer_1 = tslib_1.__importDefault(require("./node-mailer"));
const EmailDict = {
nodemailer: new node_mailer_1.default(),
};
/**
* 注入一个其它发送邮件类
* @param clazz
*/
function registerEmail(clazz) {
const instance = new clazz();
EmailDict[instance.name] = instance;
}
function getEmail(origin) {
(0, assert_1.assert)(EmailDict.hasOwnProperty(origin));
return EmailDict[origin];
}
function getOrigin() {
return Object.keys(EmailDict);
}
async function sendEmail(options, context) {
try {
const instance = getEmail('nodemailer');
const result = await instance.sendEmail(options, context);
return result;
}
catch (err) {
return {
success: false,
error: err,
};
}
}