Instal Postfix + SendGrid/Mandrill/SMTP Server Eksternal Lainnya Untuk Mengirim Email di Linux Debian

Beberapa hari yang lalu, email notifikasi dari server yang masuk ke email, lebih banyak masuk ke spam box. Juga ketika saya mencoba fitur lupa password dari salah satu situs berbasis WordPress, email yang dikirimkan tidak masuk. Salah dua tersebut adalah kelemahan jika email dikirim via server, tidak reliable alias ababil kalo bahasa anak sekarang :)
Untuk itu, SMTP Server Eksternal harus saya gunakan untuk menggantikan sistem email di server web. Banyak pilihan SMTP Server Eksternal, yang cukup punya nama mentereng adalah SendGrid, Mandrill by MailChimp dan Amazon SES (Simple Email Service). Atau anda tinggal googling aja kata kunci “SMTP Server Services” atau bagi yang pemburu layanan gratisan bisa menggunakan kata kunci “Free SMTP Server Service”. Dan berikut adalah tutorial instal Postfix dengan menggunakan SMTP Server untuk mengirimkan email yang lebih reliable.

Disclaimer

  • Tutorial ini sudah dicoba dan berhasil di Linux Debian 8, akan tetapi tidak menutuo kemungkinan bisa berhasil di Debian versi 7 atau varian linux berbasis Debian lainnya, seperti Ubuntu atau KNOPPIX.
  • SMTP Server yang berhasil saya coba adalah SendGrid; tetapi tutorial ini juga bisa digunakan menggunakan SMTP server eksternal lainnya
  • Tutorial ini tidak bisa digunakan menggunakan SMTP server Google (Gmail dan Google Apps), jika ada waktu akan saya tuliskan tutorial terpisah.

Ok next step.

Adonan Yang Diperlukan

Sebelum memulai tutorial ini, anda sudah mempunyai:

  • Server, baik Dedicated Server atau VPS, sudah terinstal Linux Debian 8.
  • Fully Qualified Domain Name (FQDN) sudah di setting di server. Ketik perintah hostname untuk cek.
  • Perbarui package Linux dengan perintah apt-get update && apt-get upgrade
  • Anda sudah mempunyai username & password SMTP server.
  • Pastikan module libsasl2-modules sudah terinstal, jika belum gunakan perintah apt-get install libsasl2-modules

NOTE: Jika server anda menggunakan Ubuntu, tambah sudo untuk mengeksekusi perintah-perintah diatas.

Instal Postfix

Ketik perintah

apt-get install postfix

untuk memulai instal Postfix.

Pada saat proses instal, akan muncul jendela dialog General type of mail configuration seperti dibawah ini.

Pilih Internet Site.

Kemudian masukkan FQDN seperti dibawah ini, contoh fqdn.example.com

Setelah proses instalasi selesai, buka file konfigurasi Postfix dengan perintah

nano /etc/postfix/main.cf

Pastikan parameter myhostname diisi sesuai dengan FQDN anda

myhostname = fqdn.example.com

Konfigurasi Username & Password SMTP

Username dan password akan disimpan file bernama passwd di direktori /etc/postfix/sasl/. Selanjutnya kita akan membuat file passwd yang berisikan username & password SMTP server yang nantinya akan digunakan oleh Postfix.

Jika Anda Menggunakan SendGrid

Login ke SendGrid, pilih menu Settings -> API Keys. Kemudian klik tombol Create API Key.

Beri nama API Key yang akan dibuat. Dan pada pilihan API Key Permissions, pilih Full Access. Lihat gamabr dibawah.

Kemudian klik tombol Create & View. Pada halaman selanjutnya, akan muncul API Key, copy dan paste API Key tersebut ke notepad.

Selanjutnya kita akan membuat file passwd dengan perintah

nano /etc/postfix/sasl/passwd

dan masukkan API Key yang tadi kita buat, dengan format seperti ini

[smtp.sendgrid.net]:587 apikey:kodeAPIkey

NOTE: apikey adalah username SMTP, biarkan seperti itu. Sedang kodeAPIkey adalah API Key yang tadi kita buat diatas. Sedang 587 adalah port yang dipakai oleh SendGrid.

Kemudian kita akan membuat file hash db untuk Postfix dengan menjalankan perintah

postmap /etc/postfix/sasl/passwd

Jika berhasil, akan muncul file passwd.db di direktori /etc/postfix/sasl/. Bisa cek dengan perintah ls -l /etc/postfix/sasl/

Agar file passwd dan passwd.db lebih aman, kita akan mengatur file tersebut agar hanya root yang bisa membaca dan mengubahnya; dan juga kita akan mengubah kepemilikan file-file tersebut ke root. Gunakan perintah ini:

chown root:root /etc/postfix/sasl/passwd /etc/postfix/sasl/passwd.db
chmod 0600 /etc/postfix/sasl/passwd /etc/postfix/sasl/passwd.db

Selanjutnya, kita akan mengkonfigurasi file /etc/postfix/main.cf, agar Postfix bisa menggunakan SMTP server SendGrid. Ketik perintah

nano /etc/postfix/main.cf

Ubah relayhost sesuai dengan paramater SendGrid

# SMTP host dari SendGrid 
relayhost = [smtp.sendgrid.net]:587

Kemudian di bagian akhir file /etc/postfix/main.cf, tambahkan parameter ini

# aktifkan otentikasi SASL
smtp_sasl_auth_enable = yes
# matikan metode otentikasi anonim 
smtp_sasl_security_options = noanonymous
# lokasi sasl passwd
smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd
# Aktifkan enkripsi STARTTLS
smtp_use_tls = yes
# Lokasi CA certificates
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Simpan ubahan diatas dan restart Postfix dengan perintah

service postfix restart

atau

/etc/init.d/postfix restart

Selanjutnya test Postfix untuk mengirim email dengan perintah

echo "body email" | mail -s "Ini Judul Email" -a "From: email@anda.com" email@yangdituju.com

NOTE: Ganti email@anda.com dengan sembarang alamat email. Dan ganti email@yangdituju.com dengan alamat email yang akan digunakan untuk menerima email (gunakan email yang valid, agar kita tahu email sudah masuk atau belum).

Jika Anda Menggunakan SMTP Server Lain

Pada prinsipnya konfigurasinya sama, yang perlu anda rubah hanya file /etc/postfix/sasl/passwd agar menyesuaikan dengan alamat SMTP server, port, username dan paswordnya

[mail.ispserver.com]:587 username:password

Dan juga ubah relayhost pada file /etc/postfix/main.cf

relayhost = [mail.ispserver.com]:587

Jangan lupa untuk membuat file hash db dengan perintah

postmap /etc/postfix/sasl_passwd

Dan juga restart Postfix

service postfix restart

atau

/etc/init.d/postfix restart

Selamat mencoba!

Comments 2

    1. Post
      Author

Leave a Reply

Your email address will not be published. Required fields are marked *