Tampilan
Notifikasi Email
Email notifikasi (invoice, reminder, kuota, signup, dll.) dikirim via nodemailer (SMTP) dengan template Pug. Ini terpisah dari pengiriman email transaksional pelanggan (yang lewat ZoneMTA — lihat Pengiriman Email).
Pola umum
Sebagian besar email notifikasi mengikuti pola: event bisnis → register Job → spawn worker cron → worker meng-compile template Pug dan mengirim via SMTP.
File kunci
| Komponen | Path |
|---|---|
| Helper SMTP | helpers/mailing.helper.js |
| Template Pug | views/mailing/ (~79 template) |
| Job runner | job-runner.js |
| Job queue | repositories/job.repository.js |
| Sender invoice legacy (inline HTML) | helpers/sending-email.helper.js |
Fungsi mailing.helper.js
| Fungsi | Tujuan |
|---|---|
transporter() | Transport SMTP default (SMTP_HOST, SMTP_USER, SMTP_PASSWORD, port 587) |
transporterGmail(config) | Transport yang bisa dikonfigurasi |
send({transporter, mailOptions}) | Wrapper promise pengiriman |
renderHtmlTemplate({template, data}) | Compile views/mailing/{template}.pug |
renderHtmlString({htmlString, data}) | Compile pug inline |
defaultOptions(option, addDefCC) | from/to/cc/subject/html standar |
Kategori template (contoh)
| Template | Pemicu |
|---|---|
inv-terbit-new.pug / proforma-inv-manual.pug | Proforma saat checkout |
invoice.pug | Invoice lunas (via job-send-mail-invoice.js) |
new-payment-received.pug | Notifikasi pembayaran ke admin |
setup-now.pug | Kredensial relay setelah checkout |
notif-quota-full-{80,90,100}.pug | Alert ambang kuota |
reminder-payment-*.pug | Reminder tunggakan |
overquota/reminder-overquota-invoice-*.pug | Billing over-quota |
accounts/forgot-pass.pug | Reset password |
signup.pug | Signup user baru |
Konfigurasi SMTP
Dari .env (lihat Konfigurasi Environment):
| Variabel | Peran |
|---|---|
SMTP_HOST, SMTP_USER, SMTP_PASSWORD | Auth nodemailer |
SENDER_EMAIL | From default |
SENDER_EMAIL_ACC | From untuk email accounting/invoice |
Notifikasi in-app
Selain email, ada notifikasi in-app yang disimpan di database:
NotificationContent— konten broadcast yang dibuat admin.TransUserNotifications— relasi konten ke user (statusisRead).TransUserEmailNotifications— inbox notifikasi email per user.
Endpoint terkait ada di Endpoint User & Company (/users/notification/*) dan Endpoint Admin (/admins/notification/*).