4.2 KiB
Hybrid Migration — User @geonet.co.id (cPanel vs Mailcow)
Kapan baca: User masih baca email di cPanel, tapi sudah masuk grup
Mail-Users/ punya mailbox Mailcow.
Masalah
support@ (Mailcow) --kirim--> rbsetiawan@geonet.co.id
|
Postfix Mailcow: LOCAL delivery
(karena mailbox ada di Mailcow)
|
inbox Mailcow saja
X
inbox cPanel (MX eksternal)
| Arah email | rbsetiawan baca di | Masuk ke |
|---|---|---|
| Internet → MX cPanel | cPanel | ✅ cPanel |
| support@ → rbsetiawan@ (internal Mailcow) | cPanel | ❌ hanya Mailcow |
Satu alamat email = satu inbox canonical. Tidak bisa mailbox aktif di Mailcow dan inbox utama di cPanel untuk routing internal.
Dua jalur per user
Jalur A — Migrasi penuh ke Mailcow (disarankan jangka panjang)
Sesuai email-sync-migration-concept.md.
| Step | Aksi |
|---|---|
| 1 | Tetap di grup Mail-Users |
| 2 | Mailbox Mailcow aktif (LDAP) |
| 3 | Tambah fetchmail POP3 dari cPanel → Mailcow (seperti support@) |
| 4 | User ganti Outlook → IMAP sync.geonet.co.id + password AD |
| 5 | Inbox canonical = Mailcow saja |
Email internal dari support@ sudah masuk Mailcow — user tinggal baca di sana.
Jalur B — Tetap di cPanel (belum migrasi)
| Step | Aksi |
|---|---|
| 1 | Keluarkan user dari grup AD Mail-Users |
| 2 | Nonaktifkan mailbox di Mailcow Admin (Inactive) |
| 3 | LDAP sync: docker exec mailcowdockerized-php-fpm-mailcow-1 php /crons/ldap-sync.php |
| 4 | Transport map → relay ke SMTP cPanel (wajib) |
| 5 | Aktifkan alias (jika ada) agar SOGo terima penerima |
| 6 | User tetap baca email di cPanel |
Tanpa transport map: kirim internal dari Mailcow ke user tanpa mailbox → error User unknown.
Transport map (Mailcow Admin UI)
Configuration → Routing → Transport maps → Add
| Field | Contoh rbsetiawan@ |
|---|---|
| Destination | rbsetiawan@geonet.co.id |
| Nexthop | [sc138.idcloudhosting.cloud]:587 |
| Username | support@geonet.co.id (sama relay outbound) |
| Password | password SMTP cPanel relay |
| Active | ✅ |
Atau jalankan script: scripts/setup-transport-cpanel-user.sh rbsetiawan@geonet.co.id
Catatan: Port 25 ke cPanel ditolak RBL (IP publik Mailcow). Pakai 587 + auth.
Verifikasi Postfix: postmap -q rbsetiawan@geonet.co.id mysql:/opt/postfix/conf/sql/mysql_transport_maps.cf → harus return smtp_via_transport_maps:[sc138...]:587
Kebijakan tim (rekomendasi)
| Fase user | Grup Mail-Users |
Mailbox Mailcow | Baca email via |
|---|---|---|---|
| Belum migrasi | ❌ Jangan tambah dulu | ❌ | cPanel |
| Migrasi | ✅ | ✅ | sync.geonet.co.id IMAP |
| support@ | ✅ | ✅ + fetchmail POP3 | Mailcow |
Jangan masukkan semua user ke Mail-Users sekaligus jika masih pakai cPanel harian.
Untuk kasus rbsetiawan@ saat ini (Jalur B — diterapkan 2026-07-06)
| Item | Status |
|---|---|
Keluar grup Mail-Users |
✅ |
| Mailbox Mailcow Inactive | ✅ (active=0) |
| LDAP sync | ✅ |
| Transport map → cPanel :587 | ✅ |
| Alias aktif (SOGo RCPT) | ✅ |
| Tes kirim support@ → rbsetiawan@ | ✅ verified — inbox cPanel |
Email lama yang sudah masuk inbox Mailcow tidak otomatis pindah ke cPanel.
Untuk migrasi penuh (Jalur A): fetchmail POP3 + Outlook IMAP Mailcow — lihat email-sync-migration-concept.md.
fetchmail multi-user
Contoh tambahan di /opt/fetchmail/fetchmailrc (satu entry per user migrasi):
poll mail.geonet.co.id with proto POP3 port 995
user "rbsetiawan@geonet.co.id" there with password "..." is "rbsetiawan@geonet.co.id" here
ssl
no sslcertck
smtphost 127.0.0.1
smtpname sync.geonet.co.id
fetchall
nokeep