41 lines
1003 B
TypeScript
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;
|
|
}
|
|
}
|