ff-admin-server/src/helpers/mailHelper.ts

39 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-08-25 13:36:19 +02:00
import { Transporter, createTransport, TransportOptions } from "nodemailer";
export default class MailHelper {
private readonly transporter: Transporter;
constructor() {
this.transporter = createTransport({
host: process.env.MAIL_HOST,
port: Number(process.env.MAIL_PORT),
secure: (process.env.MAIL_SECURE as "true" | "false") == "true",
auth: {
user: process.env.MAIL_USERNAME,
pass: process.env.MAIL_PASSWORD,
},
} as TransportOptions);
}
/**
* @description send mail
* @param {string} target
* @param {string} subject
* @param {string} content
* @returns {Prmose<*>}
*/
async sendMail(target: string, subject: string, content: string): Promise<any> {
return new Promise((resolve, reject) => {
this.transporter
.sendMail({
from: `"${process.env.CLUB_NAME}" <${process.env.MAIL_USERNAME}>`,
to: target,
subject,
text: content,
})
.then((info) => resolve(info.messageId))
.catch((e) => reject(e));
});
}
}