import { Module } from '@nestjs/common' import { JwtService } from '@nestjs/jwt' import { EmailService } from './email.service' import { EmailController } from './email.controller' import { MailerModule } from '@nestjs-modules/mailer' import { emailConfig, EmailConfig } from 'src/common/configs' import { HandlebarsAdapter } from '@nestjs-modules/mailer/dist/adapters/handlebars.adapter' @Module({ imports: [ MailerModule.forRootAsync({ inject: [emailConfig.KEY], useFactory: async (emailConfig: EmailConfig) => ({ transport: { host: emailConfig.host, port: emailConfig.port, secure: emailConfig.port === 465, auth: { user: emailConfig.user, pass: emailConfig.password, }, }, defaults: { from: emailConfig.send_from, }, template: { dir: process.cwd() + '/src/email/templates/', adapter: new HandlebarsAdapter(), options: { strict: true }, }, }), }), ], controllers: [EmailController], providers: [EmailService, JwtService], exports: [EmailService], }) export class EmailModule {}