Files
Hydro/hydro/lib/mail.ts
T
undefined 82c193b5ee 一些优化
优化 Date.prototype.format
修复题目分类解析错误的问题
Interface Tdoc
X-Forwarded-For 支持
2020-07-12 18:59:00 +08:00

41 lines
1.2 KiB
TypeScript

import nodemailer from 'nodemailer';
import { SendMailError } from '../error';
// eslint-disable-next-line import/prefer-default-export
export async function sendMail(to: string, subject: string, text: string, html: string) {
let t: unknown;
try {
const { system } = global.Hydro.model;
const [host, port, secure, user, pass, from] = await Promise.all([
system.get('smtp.host'),
system.get('smtp.port'),
system.get('smtp.secure'),
system.get('smtp.user'),
system.get('smtp.pass'),
system.get('smtp.from'),
]);
const transporter = nodemailer.createTransport({
host, port, secure, auth: { user, pass },
});
t = await new Promise((resolve, reject) => {
transporter.sendMail({
from,
to,
subject,
text,
html,
}, (err, info) => {
if (err) reject(err);
else resolve(info);
});
});
} catch (e) {
throw new SendMailError(to);
}
return t;
}
global.Hydro.lib.mail = {
sendMail,
};