7.7 KiB
Konsep — POP3 Drain cPanel → Mailcow (inbox tunggal)
Terakhir Diperbarui: 2026-07-03
Status: Rencana arsitektur — keputusan user
Konteks: MXgeonet.co.idtetap cPanel; inbox canonical di Mailcowsync.geonet.co.id
Ringkasan keputusan
| Aspek | Rencana |
|---|---|
MX geonet.co.id |
Tetap cPanel (belum cutover) |
| Inbox cPanel | Kosong — hanya staging sementara |
| POP3 drain | VM/service tarik POP3 dari cPanel, hapus setelah sukses |
| Inbox canonical | Mailcow sync.geonet.co.id (IMAP) |
| Outlook user | IMAP + SMTP hanya sync.geonet.co.id |
| Zammad | IMAP + SMTP ke Mailcow (mailbox sama dengan user) |
| Mailcow host | 10.100.1.28 |
Prinsip: cPanel hanya pintu masuk internet; semua orang baca/tulis email lewat Mailcow.
Diagram alur
flowchart TB
subgraph internet [Internet]
S[Pengirim / penerima balasan]
end
subgraph cpanel [cPanel — staging kosong]
MX[MX geonet.co.id]
STG[(Inbox cPanel\nkosong setelah POP3)]
end
subgraph vm [VM 10.100.1.28]
FM[fetchmail / getmail\nPOP3 drain + delete]
MC[Mailcow sync.geonet.co.id]
MBX[(Inbox IMAP\ncanonical)]
end
subgraph clients [Klien]
OL[Outlook user\nIMAP + SMTP]
Z[Zammad\nIMAP + SMTP]
end
S -->|email baru| MX --> STG
STG -->|POP3 :995\nhapus setelah OK| FM -->|SMTP inject :587| MC --> MBX
MBX -->|IMAP :993| OL
MBX -->|IMAP poll| Z
OL -->|SMTP :587| MC
Z -->|SMTP :587| MC
MC -->|kirim ke internet| S
Peran masing-masing komponen
1. cPanel (mail.geonet.co.id)
| Fungsi | Detail |
|---|---|
| MX record | Masih menunjuk ke hosting — email dari internet masuk sini dulu |
| Inbox | Staging — harus kosong setelah POP3 drain berjalan |
| User Outlook | Tidak connect ke cPanel lagi |
| POP3 | mail.geonet.co.id:995 SSL — hanya untuk service VM |
2. VM — POP3 drain (fetchmail)
Service di server (bisa di VM yang sama dengan Mailcow), bukan di PC user.
| Setting | Nilai |
|---|---|
| Protokol sumber | POP3 SSL :995 |
| Host | mail.geonet.co.id |
| User | nama@geonet.co.id (per mailbox) |
| Setelah sukses | Hapus dari cPanel (fetchall + tidak keep) |
| Tujuan | SMTP ke Mailcow 127.0.0.1:587 atau sync.geonet.co.id:587 |
| Jadwal | Cron/systemd tiap 1–2 menit |
Contoh fetchmailrc (produksi di /opt/fetchmail/fetchmailrc):
poll mail.geonet.co.id with proto POP3 port 995
user "support@geonet.co.id" there with password "..." is "support@geonet.co.id" here
ssl
no sslcertck
smtphost 127.0.0.1
smtpname sync.geonet.co.id
fetchall
nokeep
Password dengan
#atau$harus di-escape (generate via Pythonrepr()).
sslharus setelah barisuser, bukan sebelum.
no sslcertck— cert cPanel*.idcloudhosting.cloud≠mail.geonet.co.id.
SMTP inject ke Mailcow via127.0.0.1:25(tanpa auth).
Install:scripts/install-fetchmail-support.sh+ systemd timer 2 menit.
3. Mailcow (sync.geonet.co.id)
| Fungsi | Detail |
|---|---|
| Hostname | sync.geonet.co.id |
| Inbox canonical | Semua pesan hidup di sini |
| Domain mailbox | Tambah geonet.co.id di Mailcow agar alamat tetap user@geonet.co.id |
| Dovecot IMAP | :993 — Outlook & Zammad |
| Postfix SMTP | :587 — kirim balasan |
4. Outlook user
Satu akun saja — tidak ada akun cPanel.
| Setting | Nilai |
|---|---|
| Incoming | IMAP |
| Server | sync.geonet.co.id |
| Port | 993 |
| Encryption | SSL/TLS |
| Outgoing | SMTP |
| Server | sync.geonet.co.id |
| Port | 587 (STARTTLS) atau 465 (SSL) |
| Auth | Ya — username = email penuh |
| Username | nama@geonet.co.id |
5. Zammad
Sama seperti Outlook — satu mailbox di Mailcow:
| Arah | Konfigurasi |
|---|---|
| Inbound | IMAP sync.geonet.co.id:993 → support@geonet.co.id |
| Outbound | SMTP sync.geonet.co.id:587 → support@geonet.co.id |
Mengapa POP3 drain (bukan imapsync mirror)
| imapsync (salin) | POP3 drain (pilihan user) | |
|---|---|---|
| Inbox cPanel | Masih berisi salinan | Kosong |
| Sumber kebenaran | Dua tempat | Satu — Mailcow saja |
| Outlook connect ke | Harus Mailcow saja juga | Mailcow saja ✅ |
| Risiko duplikat | Ada jika lupa aturan | Rendah |
Cocok dengan tujuan: user hanya tahu sync.geonet.co.id, cPanel tidak dipakai sehari-hari.
SPF / DKIM outbound (penting)
Balasan dari Mailcow dengan From: user@geonet.co.id butuh DNS mengizinkan server .102:
| Record | Fase transisi | Fase akhir |
|---|---|---|
SPF geonet.co.id |
Tambah IP publik .102 atau relay SMTP cPanel sebagai smarthost |
Mailcow only |
| DKIM | Generate di Mailcow, publish TXT | Sama |
| DMARC | Opsional awal | Disarankan |
Opsi jika belum siap SPF:
- Mailcow smarthost →
sc138.idcloudhosting.cloud:465untuk outbound@geonet.co.id - Atau Zammad SMTP tetap hosting sementara, Outlook SMTP Mailcow (campuran — kurang ideal)
Target user: Outlook incoming dan outgoing sync.geonet.co.id → siapkan SPF/DKIM geonet.co.id untuk IP Mailcow.
Multi-mailbox
Setiap user@geonet.co.id di cPanel perlu:
- Entry fetchmail POP3 sendiri (atau satu script loop)
- Mailbox matching di Mailcow
- Outlook user connect ke Mailcow
Contoh tim:
| cPanel POP3 | Mailcow mailbox | Klien |
|---|---|---|
support@geonet.co.id |
support@geonet.co.id |
Zammad + Outlook IT |
info@geonet.co.id |
info@geonet.co.id |
Outlook admin |
nama@geonet.co.id |
nama@geonet.co.id |
Outlook user |
Risiko & mitigasi
| Risiko | Dampak | Mitigasi |
|---|---|---|
| fetchmail mati | Email menumpuk di cPanel, user tidak lihat | Monitor cron + alert (Uptime Kuma / script) |
| Latency 1–2 menit | Email tidak instant di Outlook | Kurangi interval cron; terima sebagai trade-off |
| POP3 gagal mid-batch | Pesan bisa hilang jika delete sebelum SMTP OK | Pakai fetchmail nokeep hanya setelah SMTP sukses (default behavior) |
| Port 25 blokir | Outbound Mailcow gagal | Smarthost cPanel atau port 587 |
VM .102 down |
Semua mail flow stop | HA / backup VM; monitor |
Perbedaan dengan pola Thunderbird manual
| Thunderbird di PC | fetchmail di VM | |
|---|---|---|
| POP3 drain | User PC harus nyala | Server 24/7 |
| Deliver ke Mailcow | Manual / filter | Otomatis SMTP inject |
| Outlook user | Hanya IMAP Mailcow | Sama ✅ |
Thunderbird tidak dipakai untuk bridge — hanya Outlook (atau client lain) ke Mailcow.
Roadmap
| Tahap | Aksi |
|---|---|
| 1 | Install Mailcow di VM .102, hostname sync.geonet.co.id |
| 2 | Tambah domain geonet.co.id + buat mailbox |
| 3 | Deploy fetchmail POP3 drain per mailbox |
| 4 | Kosongkan inbox cPanel (tes drain) |
| 5 | Konfigurasi Outlook user → IMAP/SMTP Mailcow |
| 6 | Zammad IMAP + SMTP Mailcow |
| 7 | SPF/DKIM untuk outbound @geonet.co.id |
| 8 | Stabil 2–4 minggu |
| 9 | Cutover MX → sync.geonet.co.id, matikan fetchmail |
Checklist
- VM
10.100.1.28provisioned (16 vCPU, 32 GB, 2×512 GB) - DNS A
sync.geonet.co.id→ IP publik - Mailcow + domain
geonet.co.id - fetchmail + timer 2 menit (
support@geonet.co.id) —scripts/install-fetchmail-support.sh - Verifikasi inbox cPanel kosong setelah drain
- Outlook: IMAP+SMTP
sync.geonet.co.id - Zammad channel email → Mailcow
- SPF/DKIM
geonet.co.id - Monitoring fetchmail
Referensi
Mailcow/docs/environment.mdZammad/docs/notes/email-geonet-co-id.mdfetchmailman: https://www.fetchmail.info/