Files
twenty/packages/twenty-server/src/integrations/email/email.module.ts
T
martmull ae5558d8b5 Add mail driver (#3205)
* Add node mailer packages

* Init mailer module

* Add logger transport

* Use env variable to get transport

* Revert "Add node mailer packages"

This reverts commit 3fb954f0caef94266f96ff5f08de750073ab3491.

* Add nodemailer

* Use driver pattern

* Use logger

* Fix yarn install

* Code review returns

* Add configuration examples for smtp

* Fix merge conflict

* Add missing packages

* Fix ci
2024-01-05 16:08:19 +01:00

30 lines
941 B
TypeScript

import { DynamicModule, Global } from '@nestjs/common';
import { EmailModuleAsyncOptions } from 'src/integrations/email/interfaces/email.interface';
import { EMAIL_DRIVER } from 'src/integrations/email/email.constants';
import { LoggerDriver } from 'src/integrations/email/drivers/logger.driver';
import { SmtpDriver } from 'src/integrations/email/drivers/smtp.driver';
import { EmailService } from 'src/integrations/email/email.service';
@Global()
export class EmailModule {
static forRoot(options: EmailModuleAsyncOptions): DynamicModule {
const provider = {
provide: EMAIL_DRIVER,
useFactory: (...args: any[]) => {
const config = options.useFactory(...args);
return config ? new SmtpDriver(config) : new LoggerDriver();
},
inject: options.inject || [],
};
return {
module: EmailModule,
providers: [EmailService, provider],
exports: [EmailService],
};
}
}