utils/email
This commit is contained in:
parent
ca12810f3d
commit
1c843fb1bf
|
|
@ -3,42 +3,10 @@ import { EntityDict } from '../../oak-app-domain';
|
||||||
import { BRC } from '../../types/RuntimeCxt';
|
import { BRC } from '../../types/RuntimeCxt';
|
||||||
import Email, { EmailOptions } from '../../types/Email';
|
import Email, { EmailOptions } from '../../types/Email';
|
||||||
|
|
||||||
import Nodemailer from './node-mailer';
|
|
||||||
|
|
||||||
const EmailDict: Record<string, any> = {
|
|
||||||
nodemailer: Nodemailer,
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 注入一个其它发送邮件类
|
|
||||||
* @param clazz
|
|
||||||
*/
|
|
||||||
export function registEmail<ED extends EntityDict>(clazz: new () => Email<ED>) {
|
|
||||||
const instance = new clazz();
|
|
||||||
EmailDict[instance.name] = instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getEmail<ED extends EntityDict>(origin: string) {
|
|
||||||
assert(EmailDict.hasOwnProperty(origin));
|
|
||||||
return EmailDict[origin] as Email<ED>;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getOrigin() {
|
|
||||||
return Object.keys(EmailDict);
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function sendEmail<ED extends EntityDict>(
|
export async function sendEmail<ED extends EntityDict>(
|
||||||
options: EmailOptions,
|
options: EmailOptions,
|
||||||
context: BRC<ED>
|
context: BRC<ED>
|
||||||
) {
|
) {
|
||||||
try {
|
const { text, html } = options;
|
||||||
const instance = getEmail<ED>('nodemailer');
|
console.log('邮件内容:', html || text);
|
||||||
const result = await instance.sendEmail(options, context);
|
|
||||||
return result;
|
|
||||||
} catch (err) {
|
|
||||||
return {
|
|
||||||
success: false,
|
|
||||||
res: err,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
import { assert } from 'oak-domain/lib/utils/assert';
|
|
||||||
import { EntityDict } from '../../oak-app-domain';
|
|
||||||
import { BRC } from '../../types/RuntimeCxt';
|
|
||||||
import Email, { EmailOptions } from '../../types/Email';
|
|
||||||
|
|
||||||
const EmailDict: Record<string, any> = {};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 注入一个其它发送邮件类
|
|
||||||
* @param clazz
|
|
||||||
*/
|
|
||||||
export function registEmail<ED extends EntityDict>(clazz: new () => Email<ED>) {
|
|
||||||
const instance = new clazz();
|
|
||||||
EmailDict[instance.name] = instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getEmail<ED extends EntityDict>(origin: string) {
|
|
||||||
assert(EmailDict.hasOwnProperty(origin));
|
|
||||||
return EmailDict[origin] as Email<ED>;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getOrigin() {
|
|
||||||
return Object.keys(EmailDict);
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function sendEmail<ED extends EntityDict>(
|
|
||||||
options: EmailOptions,
|
|
||||||
context: BRC<ED>
|
|
||||||
) {
|
|
||||||
console.log('前后模式下,前端无需发送邮件')
|
|
||||||
}
|
|
||||||
|
|
@ -5,7 +5,6 @@ import Email, { EmailOptions } from '../../types/Email';
|
||||||
|
|
||||||
import Nodemailer from './node-mailer';
|
import Nodemailer from './node-mailer';
|
||||||
|
|
||||||
// 邮箱发送先直接注入nodemailer 后面要注入自己的邮件发送逻辑再说 by wkj
|
|
||||||
const EmailDict: Record<string, any> = {
|
const EmailDict: Record<string, any> = {
|
||||||
nodemailer: Nodemailer,
|
nodemailer: Nodemailer,
|
||||||
};
|
};
|
||||||
|
|
@ -14,7 +13,7 @@ const EmailDict: Record<string, any> = {
|
||||||
* 注入一个其它发送邮件类
|
* 注入一个其它发送邮件类
|
||||||
* @param clazz
|
* @param clazz
|
||||||
*/
|
*/
|
||||||
export function registEmail<ED extends EntityDict>(clazz: new () => Email<ED>) {
|
export function registerEmail<ED extends EntityDict>(clazz: new () => Email<ED>) {
|
||||||
const instance = new clazz();
|
const instance = new clazz();
|
||||||
EmailDict[instance.name] = instance;
|
EmailDict[instance.name] = instance;
|
||||||
}
|
}
|
||||||
|
|
@ -36,10 +35,10 @@ export async function sendEmail<ED extends EntityDict>(
|
||||||
const instance = getEmail<ED>('nodemailer');
|
const instance = getEmail<ED>('nodemailer');
|
||||||
const result = await instance.sendEmail(options, context);
|
const result = await instance.sendEmail(options, context);
|
||||||
return result;
|
return result;
|
||||||
} catch (err: any) {
|
} catch (err) {
|
||||||
return {
|
return {
|
||||||
success: false,
|
success: false,
|
||||||
error: err?.message,
|
error: err,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue