BE/src/mail/mail.module.ts

50 lines
1.4 KiB
TypeScript
Raw Normal View History

2025-07-21 21:09:33 +05:30
2025-06-16 15:53:15 +05:30
import { Module } from '@nestjs/common';
2025-07-02 17:37:04 +05:30
import { ConfigModule, ConfigService } from '@nestjs/config';
import { join } from 'path';
import * as Joi from 'joi';
2025-07-21 21:09:33 +05:30
import { MailService } from './mail.service';
import * as nodemailer from 'nodemailer';
2025-06-16 15:53:15 +05:30
@Module({
imports: [
2025-07-02 17:37:04 +05:30
ConfigModule.forRoot({
isGlobal: true,
validationSchema: Joi.object({
MAIL_USER: Joi.string().required(),
MAIL_PASS: Joi.string().required(),
}),
}),
2025-07-21 21:09:33 +05:30
],
2025-07-02 17:37:04 +05:30
2025-07-21 21:09:33 +05:30
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'),
},
2025-07-02 17:37:04 +05:30
},
2025-07-21 21:09:33 +05:30
{
from: `"Carnet APP" <${configService.get<string>('MAIL_USER')}>`,
2025-07-21 21:09:33 +05:30
}
);
},
2025-07-02 17:37:04 +05:30
inject: [ConfigService],
2025-07-21 21:09:33 +05:30
},
MailService,
2025-06-16 15:53:15 +05:30
],
2025-07-21 21:09:33 +05:30
exports: [MailService],
2025-06-16 15:53:15 +05:30
})
2025-07-02 17:37:04 +05:30
2025-06-16 15:53:15 +05:30
export class MailModule { }