postiz/libraries/nestjs-libraries/src/emails/node.mailer.provider.ts

41 lines
1003 B
TypeScript

import nodemailer from 'nodemailer';
import { EmailInterface } from '@gitroom/nestjs-libraries/emails/email.interface';
const transporter = nodemailer.createTransport({
host: process.env.EMAIL_HOST,
port: +process.env.EMAIL_PORT!,
secure: process.env.EMAIL_SECURE === 'true',
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASS,
},
});
export class NodeMailerProvider implements EmailInterface {
name = 'nodemailer';
validateEnvKeys = [
'EMAIL_HOST',
'EMAIL_PORT',
'EMAIL_SECURE',
'EMAIL_USER',
'EMAIL_PASS',
];
async sendEmail(
to: string,
subject: string,
html: string,
emailFromName: string,
emailFromAddress: string
) {
const sends = await transporter.sendMail({
from:`${emailFromName} <${emailFromAddress}>`, // sender address
to: to, // list of receivers
subject: subject, // Subject line
text: html, // plain text body
html: html, // html body
});
return sends;
}
}