teraskill-be / src /modules /email /email.module.ts
Farhan Dwi Hartanto
Add application file
545f89a
Raw
History Blame Contribute Delete
1.27 kB
import { MailerModule } from '@nestjs-modules/mailer';
import { HandlebarsAdapter } from '@nestjs-modules/mailer/dist/adapters/handlebars.adapter';
import { Global, Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { join } from 'node:path';
import { IEmailService } from './email-service.interface';
import { EmailService } from './email.service';
@Global()
@Module({
imports: [
ConfigModule,
MailerModule.forRootAsync({
useFactory: (config: ConfigService) => ({
transport: {
host: config.get('SMTP_HOST'),
port: config.get('SMTP_PORT'),
secure: false,
auth: {
user: config.get('SMTP_USER'),
pass: config.get('SMTP_PASS'),
},
},
defaults: {
from: config.get('SMTP_FROM'),
},
template: {
dir: join(process.cwd(), 'src/modules/email/templates'),
adapter: new HandlebarsAdapter(),
options: {
strict: true,
},
},
}),
inject: [ConfigService],
}),
],
providers: [
{
provide: IEmailService,
useClass: EmailService,
},
],
exports: [IEmailService],
})
export class EmailModule {}