Authentikasi SMTP (ISP SMTP Authentication) dibutuhkan jika kita memiliki Zimbra Mail server yang hanya berfungsi sebagai gateway mail server. Artinya, kita tidak memiliki IP publik, jadi mail server yang kita gunakan hanya berfungsi untuk meneruskan (relay) email ke ISP dan mengambil email (collecting) dari inbox di ISP.

Misalnya saya punya domain lokal vavai.co.id dan punya domain publik dengan nama yang sama (vavai.co.id, canonical name dari mail.vavai.co.id). Saya memiliki user dengan nama rivai dan password passwordku di domain publik. Saya ingin agar mail server Zimbra bisa melakukan relay semua email dengan tujuan non domain lokal ke alamat email tujuan hanya dengan mengirimkannya ke alamat mail.vavai.co.id. Bagaimana caranya ?

Sebagian besar SMTP relay memberikan syarat agar kita melakukan authentikasi sebelum menjadikannya sebagai relay host. Setting default Zimbra tidak memberikan pilihan itu, karenanya kita perlu melakukan sedikit tweak.

Berikut adalah langkah-langkah yang perlu dilakukan (ingat, prompt # adalah prompt root, tidak ikut diketik) :

  1. Lakukan nslookup untuk mengetahui canonical name dari mail server public
  2. # nslookup mail.vavai.co.id
    Non-authoritative answer:
    mail.vavai.co.id  canonical name = vavai.co.id.
    Name:   vavai.co.id
    Address: 75.126.137.80
  3. Masuk ke Zimbra Admin Console (https://hostaddress:7071/zimbraAdmin/)
  4. Masuk ke Pilihan Global Setting | MTA
  5. Berikan isian canonical name pada isian “Relay MTA for external delivery:”. Jika perlu masukkan portnya (coba dulu tanpa memasukkan port)
  6. Buka Konsole, masuk sebagai Admin Zimbra
  7. # su - zimbra
  8. Ketikkan perintah berikut (sesuaikan dengan user name dan passwordnya)
  9. # echo mail.vavai.co.id rivai:passwordku > /opt/zimbra/conf/relay_password
  10. Buat Postfix lookup table
  11. # postmap /opt/zimbra/conf/relay_password
  12. Test, apakah mapping sudah OK
  13. # postmap -q mail.vavai.co.id /opt/zimbra/conf/relay_password
  14. Mestinya hasilnya username:password (sesuaikan dengan nama username:password, tampilan saya : rivai:passwordku)
  15. Perintahkan Postfix untuk menggunakan SMTP Relay dengan authentikasi
  16. # postconf -e smtp_sasl_password_maps=hash:/opt/zimbra/conf/relay_password
    # postconf -e smtp_sasl_auth_enable=yes
  17. Restart Postfix
  18. # postfix reload
  19. Ujicoba melakukan pengiriman email keluar domain internal. Check pada bagian mail queue di Zimbra Admin

Catatan tambahan :

Jika ada masalah sebagai berikut :

(Authentication failed: cannot SASL authenticate to server …: no mechanism available)

Ini biasanya ada masalah pada mekanisme authentikasi yang digunakan oleh Zimbra. Coba lakukan check mengenai mekanisme authentikasi yang digunakan :

# postconf smtp_sasl_security_options

Jika jawabannya seperti ini :

smtp_sasl_security_options = noplaintext, noanonymous

Ubah agar sasl security membolehkan format plaintext untuk password dengan perintah :

# postconf -e smtp_sasl_security_options=noanonymous
# postfix reload

Semestinya sekarang sudah tidak ada masalah lagi. Coba lakukan test pengiriman email ke luar domain internal.

Jika khawatir soal pemakaian password dalam bentuk plaintext dan ISP tempat relay memiliki kemampuan TLS, silakan pelajari SMTP use TLS.