42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.sendEmail = exports.getOrigin = exports.getEmail = exports.registerEmail = void 0;
|
|
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;
|
|
}
|
|
exports.registerEmail = registerEmail;
|
|
function getEmail(origin) {
|
|
(0, assert_1.assert)(EmailDict.hasOwnProperty(origin));
|
|
return EmailDict[origin];
|
|
}
|
|
exports.getEmail = getEmail;
|
|
function getOrigin() {
|
|
return Object.keys(EmailDict);
|
|
}
|
|
exports.getOrigin = getOrigin;
|
|
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?.message,
|
|
};
|
|
}
|
|
}
|
|
exports.sendEmail = sendEmail;
|