공식 문서 : https://nest-modules.github.io/mailer/docs/mailer.html
yarn add @nestjs-modules/mailer nodemailer
#or
npm install --save @nestjs-modules/mailer nodemailer
npm install --save handlebars
#or
npm install --save pug
#or
npm install --save ejs
//app.module.ts
import { Module } from '@nestjs/common';
import { MailerModule } from '@nestjs-modules/mailer';
import { PugAdapter } from '@nestjs-modules/mailer/dist/adapters/pug.adapter';
@Module({
imports: [
MailerModule.forRoot({
transport: `smtps://${process.env.EMAIL_AUTH_EMAIL}:${process.env.EMAIL_AUTH_PASSWORD}@${process.env.EMAIL_HOST}`,
//'smtps://user@domain.com:pass@smtp.domain.com', 이부분은 보안을 위하여 .env 파일로 관리하는 것이 좋을것 같음
//defaults: {
// from: '"nest-modules" <modules@nestjs.com>',
//},
template: {
dir: __dirname + '/templates',
adapter: new PugAdapter(),
options: {
strict: true,
},
},
}),
],
})
export class AppModule {}
import { MailerService } from '@nestjs-modules/mailer';
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
constructor(private readonly mailerService: MailerService) {}
getHello(): string {
return 'Hello World!';
}
public example() {
this.mailerService.sendMail({
to: '<modules@nestjs.com', // 받는 사람 메일주소
from: 'noreply@nestjs.com', // 보내는 사람 메일주소
subject: 'Testing Nest MailerModule ✔', // 메일 제목
text: 'welcome', // 메일 내용
html: '<h1>welcome</h1>', // 메일 내용
});
return true;
// .then(() => {return true})
// .catch(() => {});
}
}