Membuat VPS Bisa Berkirim Email dengan MSMTP

Suatu ketika seorang teman bertanya, kenapa sih email yang dikirimkan dari website dia selalu saja masuk spam. Ga peduli website apa yang digunakan, sebenarnya masalahnya ada pada mail transport-nya.

VPS Debian 8 dan msmtp

Email sama seperti surat di dunia nyata. Surat akan lebih diperhatikan jika pengirimnya berasal dari satu institusi tertentu yang sudah dipercaya. Email juga begitu. Sebuah email akan lebih dipercaya dan tidak dianggap spam jika pengirimnya berasal dari mail server yang terpercaya, misalnya Google atau SMTP hosting yang ditempati.

Menggunakan Google SMTP untuk mengirim email

Ada dua cara menggunakan SMTP Google untuk mengirim email. Yang pertama adalah dengan setelan skala server dan yang kedua adalah setelan skala website. Untuk skala server artinya SMTP Google digunakan untuk mengirim email oleh mail transport agent / MTA yang ada di server tersebut.

Jadi semua aplikasi, termasuk cron, bisa menggunakan akun Google yang telah disetting sebelumnya. Kenapa aku nyebutnya akun Google, bukan gmail? Karena kita tidak hanya menggunakan gmail, tapi bisa menggunakan Google Apps. Seperti misalnya server blog Hanya Lewat ini yang menggunakan Google Apps.

Ilustrasi MTA oleh Wikipedia

Ilustrasi Email oleh Wikipedia

Sedangkan untuk skala website, kita menyetel penggunaan SMTP Google untuk website tertentu. Sehingga tiap website bisa berbeda akun email, tergantung kita setting-nya bagaimana. Khusus untuk WordPress, ada banyak cara, yakni bisa dengan hard-coding ke functions.php di themes atau menggunakan plugin. Kali ini kita tidak membahas skala website, kita akan membahas skala server menggunakan MSMTP.

Setting MSMTP untuk mengirim email melalui Google

Sebenarnya aku sudah pernah bahas tentang MSMTP di blog lainnya. Meskipun sudah lama, tapi tutorialnya masih bisa digunakan. Cara setting-nya yakni sebagai berikut:

# Install MSMTP dan ca-certificates
apt-get install msmtp ca-certificates

# Buka file /etc/msmtprc dengan editor misalnya nano dan ketik setting ini
defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

account default
host smtp.gmail.com
port 587
auth on
user username@gmail.com
password passwordku
from username@gmail.com
logfile /var/log/msmtp.log

Bagian yang aku bold itu perlu diganti menjadi akun detail kalian. Setelan diatas menggunakan akun gmail sebagai contoh. Gunakan username@domain.com jika menggunakan akun Google Apps. Kurang lebih seperti saat kalian login. Setelah itu silahkan MSMTP dicoba untuk mengirim email.

echo -e “Subject: Email Percobaan\r\n\r\nIni adalah email percobaan yang dikirim menggunakan MSMTP.” | msmtp –debug –from=default -t email_tujuan@email.com

Jika tidak ada output apapun, segera cek email tujuan. Jika sudah muncul, lihat juga pengirimnya siapa. Seharusnya pengirimnya adalah akun gmail yang sudah kalian set. Pada akun gmail yang dipakai buat mengirim, cek pada bagian Sent / Terkirim, salinan email yang kalian kirim pasti ada disana.

Setting PHP untuk mengirimkan email via MSMTP

Tidak seperti saat kalian menginstall postfix atau exim4, msmtp tidak akan menguasai fungsi sendmail/mail di sistem operasi linux. Untuk itu perlu disetting juga untuk menggantikan sendmail. Berhubung kita perlunya hanya untuk website dan cron job, maka settingnya sebagai berikut:

# Untuk setting PHP, buka php.ini, lokasinya tergantung sistem operasi yang dipakai
# Jika menggunakan script dari hanyalewat.id,
# maka lokasi php.ini ada di /etc/php5/fpm/php.ini
# Buka file php.ini dan temukan direktif sendmail_path
sendmail_path = '/usr/bin/msmtp -t'

# Untuk cron, buka file /etc/sysconfig/crond, dan cari CRONDARGS
# Tambahkan direktif CRONDARGS jika belum ada
CRONDARGS="-m '/usr/bin/msmtp -t'"

Maka VPS kalian sudah siap menggunakan msmtp sebagai MTA yang akan mengirimkan email via gmail. Sejujurnya ini aku bahas duluan karena dibutuhkan untuk sistem backup dengan notifikasi via email. Kalau ada masalah, silahkan komentar saja ya. Semoga bermanfaat.

Artikel ini diterbitkan pada

Seorang yang percaya hari akhir dan mencari Tuhan melalui ilmu pengetahuan. Mengerti PHP, Wordpress dan Linux. Namun masih saja menggunakan Windows 7 sebagai sistem operasi utama. Mau tanya apa saja atau bahkan curhat sama penulis ini, hubungi saja melalui formulir kontak disini. Pasti dibalas, kok!

Dibawah ini adalah pendapat yang dikirimkan pembaca atas artikel ini. Negara Kesatuan Republik Indonesia adalah negara bebas, anda boleh menulis apa saja asal mampu mempertanggungjawabkannya. Kami menerima kritik dan saran namun tidak menerima caci maki. Hidup cuma sekali, jangan sia-siakan hanya untuk menyakiti hati orang lain.

  1. Dian Ariyanto:

    Tandai dulu, sepertinya akan berguna dalam waktu dekat :mrgreen:

Kirim pendapat

Disclaimer: Komentar adalah tanggapan pribadi, tidak mewakili kebijakan Hanya Lewat ID. Redaksi berhak menyunting atau menghapus kata-kata yang berbau narsisme, promosi, spam, pelecehan, intimidasi dan kebencian terhadap suatu golongan.