File

src/common/provider/mail/email.service.ts

Index

Methods

Methods

Async sendEmail
sendEmail(emailOption: Mail.Options)

Send Email to end users with credentials after registration

Parameters :
Name Type Optional
emailOption Mail.Options No
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);
    }
  }
}

results matching ""

    No results matching ""