Skip to content

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

KomponenPath
Helper SMTPhelpers/mailing.helper.js
Template Pugviews/mailing/ (~79 template)
Job runnerjob-runner.js
Job queuerepositories/job.repository.js
Sender invoice legacy (inline HTML)helpers/sending-email.helper.js

Fungsi mailing.helper.js

FungsiTujuan
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)

TemplatePemicu
inv-terbit-new.pug / proforma-inv-manual.pugProforma saat checkout
invoice.pugInvoice lunas (via job-send-mail-invoice.js)
new-payment-received.pugNotifikasi pembayaran ke admin
setup-now.pugKredensial relay setelah checkout
notif-quota-full-{80,90,100}.pugAlert ambang kuota
reminder-payment-*.pugReminder tunggakan
overquota/reminder-overquota-invoice-*.pugBilling over-quota
accounts/forgot-pass.pugReset password
signup.pugSignup user baru

Konfigurasi SMTP

Dari .env (lihat Konfigurasi Environment):

VariabelPeran
SMTP_HOST, SMTP_USER, SMTP_PASSWORDAuth nodemailer
SENDER_EMAILFrom default
SENDER_EMAIL_ACCFrom 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 (status isRead).
  • TransUserEmailNotifications — inbox notifikasi email per user.

Endpoint terkait ada di Endpoint User & Company (/users/notification/*) dan Endpoint Admin (/admins/notification/*).