src/providers/email/email.provider.ts
Methods |
|
| Async deliver | |||||
deliver(undefined: DeliverParams)
|
|||||
|
Inherited from
NotificationProvider
|
|||||
|
Defined in
NotificationProvider:32
|
|||||
|
Parameters :
Returns :
Promise<nodemailer.SentMessageInfo>
|
| Async getSendmailTransport |
getSendmailTransport()
|
|
Defined in src/providers/email/email.provider.ts:10
|
|
Returns :
unknown
|
| Async getSMTPTransport |
getSMTPTransport()
|
|
Defined in src/providers/email/email.provider.ts:18
|
|
Returns :
unknown
|
import { Injectable } from "@nestjs/common";
import * as nodemailer from "nodemailer";
import {
DeliverParams,
NotificationProvider,
} from "../notification/notification.provider";
@Injectable()
export class EmailProvider extends NotificationProvider {
async getSendmailTransport() {
const transportOptions = {
sendmail: true,
logger: true,
};
return await nodemailer.createTransport(transportOptions);
}
async getSMTPTransport() {
// created to be used later when we have mail server
const smtpPort = Number(process.env.SMTP_PORT);
return await nodemailer.createTransport({
host: process.env.SMTP_HOST,
port: smtpPort,
secure: true ? smtpPort == 465 : false, // true for 465, false for other ports
auth: {
user: process.env.SMTP_USERNAME,
pass: process.env.SMTP_PASSWORD,
},
});
}
async deliver({
to,
from,
subject,
body,
}: DeliverParams): Promise<nodemailer.SentMessageInfo> {
const transport = await this.getSMTPTransport();
const message = {
from: from ?? process.env.SMTP_SENDER,
to: to,
subject: subject,
html: body,
};
return await transport.sendMail(message);
}
}