Membuat VPS Mengirim Email dengan MSMTP

Untuk anda yang menggunakan VPS murah dengan RAM yang kecil, tentu sering kebingungan harus memasang aplikasi apa supaya WordPress dan aplikasi PHP lain bisa mengirim email. Sendmail sudah diketahui kurang aman digunakan.

Ilustrasi email di Internet

Ilustrasi email di Internet

Maka dari itu perlu adanya alternatif. Masalah bisa terpecahkan jika anda mau menginstall Exim4 dan Dovecot, namun itu suatu tindakan yang membuang sumber daya, karena keduanya memakan kapasitas RAM yang tidak sedikit. Kecuali anda memiliki VPS dengan kapasitas RAM sebesar 512 MB atau lebih, saya tidak menyarankan anda menginstall Dovecot dan Exim4.

Menggunakan MSMTP dan GMail sebagai MTA

MTA adalah Mail Transport Agent, salah satu tugasnya mengirim email ke tujuan yang kita tentukan. Jika kita hanya ingin mengirim email saja, kenapa tidak kita gunakan MTA terbesar yang sudah ada? Gmail dari Google. Kita cukup memasang MSMTP dan mengkonfigurasinya dengan benar, maka masalah kita sudah terpecahkan. Caranya sebagai berikut:

  • Login ke VPS anda sebagai root. Setelah itu install msmtp dan ca-certificates.

    # apt-get install msmtp ca-certificates

    Tunggu beberapa saat hingga instalasi selesai.

  • Buat file msmtprc di folder /etc.

    # nano /etc/msmtprc
    Lalu isikan konfigurasi berikut 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 dibold adalah yang harus anda sesuaikan dengan akun anda. Untuk user dan from boleh berbeda. Setelah itu tekan CTRL+O lalu CTRL+X untuk keluar. Voila! MSMTP anda sudah siap dicoba.

  • Anda bisa mencoba mengirim email ke alamat anda sendiri melalui perintah berikut ini:

    # 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 pesan apapun alias prompt kembali ke standby, coba cek email yang dituju. Jika ada email dengan subyek Email Percobaan dan alamat pengirimnya adalah akun GMail yang anda gunakan di MSMTP, maka setting anda sudah sukses dan siap digunakan.

Setelah MSMTP berse, masih ada lagi langkah yang harus dilakukan untuk mengkonfigurasi PHP supaya bisa mengirim email menggunakan MSMTP.

MSMTP sebagai pengganti Sendmail di PHP

Supaya PHP dapat mengirim email menggunakan MSMTP, maka ada konfigurasi PHP yang mesti dirubah. Konfigurasi PHP ada di file php.ini dimana lokasi keberadaannya bisa berbeda tergantung pada distro dan versi PHP yang digunakan. Saya menggunakan PHP 5 fpm dengan web server Nginx sehingga lokasi file php.ini ada di /etc/php5/fpm/php.ini.

  • Buka file php.ini dengan editor nano lalu cari variabel yang berbunyi sendmail_path (gunakan CTRL+W lalu ketik sendmail_path). Ganti isi dari setting tersebut dengan /usr/bin/msmtp -t, menjadi seperti ini:

    sendmail_path = '/usr/bin/msmtp -t'

    Untuk melihat lokasi tetap binary msmtp, anda bisa menjalankan perintah which msmtp. Setelah beres, anda bisa simpan file diatas dengan perintah CTRL+O dan keluar menggunakan CTRL+X.

  • Restart PHP FPM dengan memanggil script initnya. Contoh: /etc/init.d/php5-fpm restart. Tidak perlu restart Nginx. Jika anda menggunakan webserver Apache dengan PHP CGI, maka Apache yang harus direstart.
  • Buat sebuah file PHP di root web folder anda, yakni folder yang bisa diakses melalui internet. Mudahnya, folder WordPress anda. Buat file bernama testmail.php lalu isi dengan kode ini:

    <?php
    $to = "email_tujuan@gmail.com";
    $subject = "Halo dari VPS!";
    $body = "Halo, pesan ini dikirim dengan skrip tes msmtp menjadi sendmail.";
    if (mail($to, $subject, $body)) {
    echo("<h1>Pesan sukses dikirim! :)</h1>");
    } else {
    echo("<h1>Pesan tidak bisa dikirim, cek error.log :(<h1>");
    }
    ?>

    Panggil file tersebut dengan mengetikkan www.domainanda.com/testmail.php, lalu lihat apa yang tampil di browser.

Jika ada tulisan pesan sukses dikirim, maka WordPress ataupun script PHP yang lain dapat menggunakan MSMTP untuk mengirim email. Sebaliknya, jika pesan tidak bisa dikirim, anda perlu melihat problemnya di file error.log web server anda. Jika tidak berhasil, anda bisa bertanya disini, di kolom komentar tapi sambil bawa pesan error.log ya supaya saya bisa tahu kesalahannya dimana. Selamat mencoba! 🙂

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 10 sebagai sistem operasi utama. Mau tanya apa saja atau bahkan curhat sama penulis ini, hubungi saja melalui formulir kontak disini. Pasti dibalas, kok!

Ada 2 pendapat pembaca

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. ANDRIANSAH:

    kalau bikin email @domain sendiri untuk vps low memory pake apa mas?
    Ada alternatif lain gak?

    • Iwan Restiono:

      Tidak perlu menggunakan VPS, bro…
      Pakai saja Zoho Mail, itu gratis mirip sama Google Apps for Works. Di Zoho ada pula fitur SMTP dan IMAP-nya, jadi bisa dikombinasikan dengan msmtp juga. 🙂

Kirim pendapat

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