@tc-libs/email-sender
v4.6.0
Published
Servizio email basato su Mailgun con supporto a template EJS e persistenza template su database.
Downloads
2,164
Readme
@tc-libs/email-sender
Servizio email basato su Mailgun con supporto a template EJS e persistenza template su database.
Il package esporta:
EmailSenderModuleEmailSenderService- DTO
SendTemplateDto - entity
EmailEntity
Registrazione
EmailSenderModule.register(
{
email: {
enabled: true,
from: '[email protected]',
cc: [],
bcc: [],
mailgun: {
host: 'api.mailgun.net',
key: process.env.MAILGUN_KEY!,
domain: process.env.MAILGUN_DOMAIN!,
},
templateDir: './templates/email',
},
app: {
endpoints: {
frontend: 'https://app.example.com',
backoffice: 'https://admin.example.com',
backend: 'https://api.example.com',
},
},
aws: {
s3: {
baseUrl: 'https://cdn.example.com',
},
},
},
true,
);Operazioni principali
sendTemplate({ lang, template, options, variables })sendText(text, subject, options)createAttachment(...)- gestione mailing list Mailgun
Esempio template:
await this.emailSenderService.sendTemplate({
lang: 'it',
template: 'welcome',
variables: {
name: 'Mario',
},
options: {
to: ['[email protected]'],
},
});Come funziona sendTemplate
- carica l'HTML da file locale o URL remoto
- compila il template EJS
- legge da database il template email per subject, labels e destinatari default
- inietta variabili condivise come
frontend,backoffice,backend,cdn - invia tramite Mailgun
Nota importante
Il package assume l'esistenza di template email persistiti nella collection dedicata, non solo file .html locali.
Sviluppo
nx build email-sender
nx test email-sender