import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { MailerModule } from '@nestjs-modules/mailer'; import { ClientsModule, Transport } from '@nestjs/microservices'; import { AuthModule } from './auth/auth.module'; import { EmailController } from './email.controller'; import { join } from 'path'; import { HandlebarsAdapter } from '@nestjs-modules/mailer/dist/adapters/handlebars.adapter'; import { ConfigModule, ConfigService } from '@nestjs/config'; @Module({ imports: [ MailerModule.forRootAsync({ // imports: [ConfigModule], // import module if not enabled globally useFactory: async (config: ConfigService) => ({ // transport: config.get("MAIL_TRANSPORT"), // or transport: { host: config.get('MAIL_HOST'), secure: false, auth: { user: config.get('MAIL_USER'), pass: config.get('MAIL_PASSWORD'), }, }, defaults: { from: `"No Reply" <${config.get('MAIL_USER')}>`, }, template: { dir: join(__dirname, 'mails'), adapter: new HandlebarsAdapter(), options: { strict: true, }, }, }), inject: [ConfigService], }), ConfigModule.forRoot({ isGlobal: true, // no need to import into other modules }), ClientsModule.register([ { name: 'SERVICIO_NOTIFICACIONES', transport: Transport.TCP, options: { host: '127.0.0.1', port: 3009, }, }, ]), AuthModule, ], controllers: [AppController, EmailController], providers: [], }) export class AppModule {}