BE/src/mail/mail.module.ts
2025-07-21 21:09:33 +05:30

50 lines
1.4 KiB
TypeScript

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<string>('MAIL_USER'),
pass: configService.get<string>('MAIL_PASS'),
},
},
{
from: `"Carnet APP" <${configService.get<string>('MAIL_USER')}>`,
}
);
},
inject: [ConfigService],
},
MailService,
],
exports: [MailService],
})
export class MailModule { }