import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { join } from 'path'; import * as Joi from 'joi'; import { MailService } from './mail.service'; import * as nodemailer from 'nodemailer'; @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, validationSchema: Joi.object({ MAIL_USER: Joi.string().required(), MAIL_PASS: Joi.string().required(), }), }), ], providers: [ { provide: 'MAIL_TRANSPORTER', useFactory: async (configService: ConfigService) => { return nodemailer.createTransport( { // service: "gmail", host: 'smtp.gmail.com', port: 587, secure: false, auth: { user: configService.get('MAIL_USER'), pass: configService.get('MAIL_PASS'), }, }, { from: `"Carnet APP" <${configService.get('MAIL_USER')}>`, } ); }, inject: [ConfigService], }, MailService, ], exports: [MailService], }) export class MailModule { }