E-posta kullanımı
EmailModule kaydı
app.module.ts
import { Module } from '@nestjs/common';
import { EmailModule, EmailProvider } from 'nestjs-notification-module';
@Module({
imports: [
EmailModule.register({
isGlobal: true,
provider: EmailProvider.SMTP,
defaultFromAddress: 'noreply@example.com',
host: 'smtp.example.com',
auth: { user: 'user', password: 'pass' },
}),
],
})
export class AppModule {}
E-posta gönder
sendAsync parametreleri
EmailService.sendAsync(args) aşağıdaki alanları alır:
| Alan | Tip | Zorunlu | Notlar |
|---|---|---|---|
from | string | ❌ Hayır | defaultFromAddress değerini override eder. |
to | string | string[] | ✅ Evet | Alıcı e-posta(lar). |
subject | string | ✅ Evet | E-posta konusu. |
content | string | ✅ Evet | E-posta içeriği (sağlayıcı’a göre değişir; çoğunlukla HTML). |
cc | string[] | ❌ Hayır | CC alıcıları. |
bcc | string[] | ❌ Hayır | BCC alıcıları. |
attachments | Attachment[] | ❌ Hayır | E-postaya eklenecek dosyalar. |
Attachment şekli:
| Alan | Tip | Zorunlu | Notlar |
|---|---|---|---|
content | string | ✅ Evet | Dosya içeriği (genelde Base64, sağlayıcı’a göre değişir). |
filename | string | ✅ Evet | Dosya adı. |
type | string | ✅ Evet | MIME type (örn. "application/pdf"). |
encoding | string | ✅ Evet | İçerik encoding’i (sağlayıcı’a göre değişir). |
disposition | string | ❌ Hayır | Örn. "attachment" veya "inline". |
mail.service.ts
import { Injectable } from '@nestjs/common';
import { EmailService } from 'nestjs-notification-module';
@Injectable()
export class MailService {
constructor(private readonly email: EmailService) {}
async sendWelcome(to: string) {
return this.email.sendAsync({
to,
subject: 'Welcome',
content: '<b>Hello</b>',
});
}
}
not
Args içinde from verilmezse modül defaultFromAddress kullanır.