src/common/provider/mail/email.service.ts
Methods |
|
| Async sendEmail | ||||||
sendEmail(emailOption: Mail.Options)
|
||||||
|
Defined in src/common/provider/mail/email.service.ts:16
|
||||||
|
Send Email to end users with credentials after registration
Parameters :
Returns :
any
|
import * as nodemailer from "nodemailer";
import { Injectable, ServiceUnavailableException } from "@nestjs/common";
import SMTPTransport from "nodemailer/lib/smtp-transport";
import Mail from "nodemailer/lib/mailer";
// eslint-disable-next-line @typescript-eslint/no-var-requires
require("dotenv").config();
@Injectable()
export class EmailService {
/**
*
* Send Email to end users with credentials after registration
*/
async sendEmail(emailOption: Mail.Options) {
try {
// create mailer transport by using credentials
const smtpConfig: SMTPTransport.Options = {
host: process.env.SMTP_HOST,
port: Number(process.env.SMTP_PORT),
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASSWORD,
},
};
const mailerClient: nodemailer.Transporter =
nodemailer.createTransport(smtpConfig);
// Create the promise and SES service object
await mailerClient.sendMail(emailOption);
} catch (error) {
console.error("err", error);
throw new ServiceUnavailableException(error);
}
}
}