50 lines
1.4 KiB
TypeScript
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 { }
|