Я разрабатываю функцию отправки электронной почты с помощью nestJS, я использую Nest Mailer; Есть ли способ получить «хост», «порт», «пользователь» и «проход» из полей, хранящихся в таблице базы данных? Кстати, я использую TypeORM. В файле .module я настраиваю плагин следующим образом:
import { Module } from '@nestjs/common';
import { MailsController } from './controllers/mails.controller';
import { HandlebarsAdapter } from '@nestjs-modules/mailer/dist/adapters/handlebars.adapter';
import { MailsService } from './services/mails.service';
import { MailerModule } from '@nestjs-modules/mailer';
@Module({
controllers: [MailsController],
providers: [MailsService],
imports: [
MailerModule.forRoot({
transport: {
host: 'smtp.gmail.com',
port: 587,
ignoreTLS: true,
secure: true,
auth: {
user: "",
pass: "",
},
},
defaults: {
to: '[email protected]',
from: '"nest-modules" <[email protected]>',
},
template: {
dir: __dirname + '/templates',
adapter: new HandlebarsAdapter(),
options: {
strict: true,
},
},
}),],
exports: [MailsService],
})
export class MailsModule { }
Пока у MailerModule
есть метод forRootAsync
, в котором вы можете определить imports
, inject
и useFactory
, тогда да, вы можете сделать вызов к базе данных, предполагая, что у вас есть сущность, настроенная для этого. Возможно что-то вроде
@Module({
imports: [
MailerModule.forRootAsync({
imports: [TypeOrmModule.forFeature([MailerConfigEntity])],
inject: [getRepositoryToken(MailerConfigEntity)],
useFactory: async (mailerRepo: Repository<MailerConfigEntity>) => {
const config = await mailerRepo.find();
return { configObjectUsingConfig };
}),
}),
],
})
Абсолютно. Думайте о массиве inject
как о своем конструкторе, пока вы передаете ему токены инъекции (обычно классы, но иногда строки), вы можете внедрить их в метод useFactory
и использовать эти введенные свойства в их
@JayMcDoniel, это не работает, так как я тоже хочу добиться того же, но получить проблемы с useFactory. Не могли бы вы указать мне решение?
@KunalGhosh «это не работает» никому ничего не говорит, кроме того, что у вас есть какая-то проблема. Специфика отличная. Я понятия не имею, как выглядит ваш код или что вы пытаетесь сделать. Было бы неплохо открыть новый пост с подробностями того, что происходит.
@JayMcDoniel Не могли бы вы попытаться изучить эту проблему, которую я опубликовал всего за несколько минут? Будет очень полезно, если вы предоставите какое-то рабочее решение.... спасибо! stackoverflow.com/questions/70096364/…
Есть ли способ использовать службу разработчика в этом коде?