# SMTP Notifikasi — Zammad 7 > **Terakhir Diperbarui:** 2026-07-03 > **Status:** ✅ Selesai 2026-07-03 > **Akun:** `support@geonet.co.id` > ⚠️ Password **tidak** didokumentasikan di repo --- ## Prasyarat (sudah diverifikasi 2026-07-03) | Cek | Hasil | |-----|-------| | Port 465 `sc138.idcloudhosting.cloud` dari `.24` | ✅ Reachable | | Port 587 `sc138.idcloudhosting.cloud` dari `.24` | ✅ Reachable | | Port 465 `mail.geonet.co.id` dari `.24` | ✅ Reachable | | SSL cert SMTP | `CN=*.idcloudhosting.cloud` (DigiCert) — pakai hostname `sc138...` + verify **yes** | | Channel aktif saat ini | `sendmail` *(tidak mengirim email nyata dari Docker)* | Detail error historis: [`email-geonet-co-id.md`](email-geonet-co-id.md) --- ## Langkah 1 — Set Notification Sender Sebelum test SMTP, ubah **From address** dari default sistem. 1. Login admin → https://zammad.gisportal.id 2. **Admin** (⚙️) → **Channels** → **Email** 3. Di bagian **Notification** (atau buka wizard notifikasi), set **Sender**: ``` "Geonet Support" ``` Atau via **Settings** → cari setting **Notification Sender** (`notification_sender`). > **Penting:** From wajib domain `@geonet.co.id`. Jika masih `noreply@zammad.gisportal.id`, SMTP hosting menolak dengan error `550 From domain must match authenticated domain`. --- ## Langkah 2 — Konfigurasi SMTP outbound **Admin** → **Channels** → **Email** → bagian **Email Notification** Pilih: **SMTP — configure your own outgoing SMTP setting** | Field Zammad | Nilai | |--------------|-------| | **Adapter** | SMTP | | **Host** | `sc138.idcloudhosting.cloud` | | **Port** | `465` | | **SSL** | ✅ Yes (implicit SSL) | | **SSL verification** | ✅ Yes | | **User** | `support@geonet.co.id` | | **Password** | *(password akun email — input manual)* | Klik **Save** / **Test** — Zammad memanggil probe outbound; jika sukses, konfigurasi tersimpan otomatis. **URL langsung:** `https://zammad.gisportal.id/#channels/email` ### Alternatif (jika 465 gagal) | Host | Port | SSL | SSL verify | |------|------|-----|------------| | `mail.geonet.co.id` | 465 | Yes | **No** *(cert mismatch)* | | `sc138.idcloudhosting.cloud` | 587 | STARTTLS | Yes | --- ## Langkah 3 — Verifikasi 1. **Test** dari wizard SMTP — harus `result: ok` 2. Buat tiket uji → assign ke agent → cek agent menerima email notifikasi 3. Cek channel status di **Channels → Email** — outbound status `ok` ### Cek dari server (opsional) ```bash # Konektivitas nc -zv -w5 sc138.idcloudhosting.cloud 465 # Status channel (tanpa password) docker exec zammad-zammad-railsserver-1 bundle exec rails runner \ "Channel.where(area: 'Email::Notification').each { |c| puts \"id=#{c.id} active=#{c.active} adapter=#{c.options.dig(:outbound,:adapter)} status=#{c.status_out}\" }" ``` --- ## Setelah SMTP OK - [ ] Update `docs/project-status.md` — SMTP ✅ - [ ] Lanjut **API token** + FE `/ticketing` — lihat [`fe-ticketing-integration.md`](fe-ticketing-integration.md) - [ ] Nanti (Fase Mailcow): ganti SMTP ke Mailcow internal --- ## Troubleshooting | Error | Penyebab | Solusi | |-------|----------|--------| | `550 From domain must match` | Sender bukan `@geonet.co.id` | Set `notification_sender` dulu | | `certificate verify failed (hostname mismatch)` | Host `mail.geonet.co.id`, cert untuk `sc138` | Host → `sc138.idcloudhosting.cloud` | | `port 587 timed out` | Lambat / intermittent | Pakai port **465** | | Test OK tapi tidak ada email | Spam folder / sendmail masih aktif | Pastikan channel SMTP **active**, sendmail **inactive** | | `authentication failed` | Password salah | Reset password di cPanel / hosting |