import { MailerModule } from "@nestjs-modules/mailer";
import { Global, Module } from "@nestjs/common";
import { join } from "path";
import { MailService } from "./mailer.service";
import { EjsAdapter } from "@nestjs-modules/mailer/dist/adapters/ejs.adapter";
import { ConfigModule, ConfigService } from "@nestjs/config";
import mailerConfig from "./mailer.config";
@Global()
@Module({
imports: [
ConfigModule.forFeature(mailerConfig),
MailerModule.forRootAsync({
imports: [ConfigModule.forFeature(mailerConfig)],
useFactory: async (config: ConfigService) => ({
transport: {
host: config.get("mailer").host,
secure: true,
port: config.get("mailer").port,
auth: {
user: config.get("mailer").user,
pass: config.get("mailer").pass,
},
},
//preview:true,
defaults: {
from: config.get("mailer").from,
},
template: {
dir: join(process.cwd(), "src", "mailer", "templates"),
adapter: new EjsAdapter({ inlineCssEnabled: true }),
options: {
strict: false,
},
},
}),
inject: [ConfigService],
}),
],
providers: [MailService],
exports: [MailService],
})
export class ApMailerModule {}