Catatan: pos ini merupakan update dari pos lama yang berjudul Menangkap Email Ketika Membangun Aplikasi dengan MailCatcher.
Saat membangun sebuah aplikasi web, sering saya dihadapkan untuk melakukan pengiriman email dari aplikasi yang sedang dibangun. Tapi bagaimana caranya kita mengetahui kalau email yang kita kirim sesuai dengan keinginan kita dan dengan cara yang cepat, alias langsung dapat diakses di komputer kita sendiri?
Di sinilah program seperti MailCatcher berguna, selain program ini ringan dibandingkan kita menggunakan MTA seperti sendmail atau yang lainnya yang lebih berat, padahal kita hanya membutuhkannya hanya untuk menampilkan email saja.
MailCatcher adalah sebuah program dalam bahasa Ruby yang berfungsi sebagai sebuah server SMTP yang sederhana yang tugasnya menangkap semua email dan menampilkannya di web broser.
Prasyarat
Berikut beberapa aplikasi dan sistem operasi yang saya gunakan untuk memasang Mailcatcher:
- Distro PoP!_OS 22.04 yang berbasiskan Ubuntu 22.04
- Web server: Nginx
- PHP 7.4 FPM
Cara Memasang MailCatcher
Pertama, kita update terlebih dahulu OS:
sudo apt update && sudo apt upgrade -y
Kedua, pastikan paket-paket GCC dan build-essential telah terpasang, kedua paket ini sebagai perangkat untuk melakukan kompilasi aplikasi.
sudo apt install -y gcc build-essential
Berikutnya, pasang dua buah library yang diperlukan untuk memasang MailCatcher adalah libsqlite3-dev dan ruby-dev, maka untuk memasang keduanya, ketikkan kedua perintah di bawah ini:
sudo apt install libsqlite3-dev ruby-dev
Maka akan terpasang aplikasi-aplikasi Ruby dan sejumlah library Ruby.
Berikutnya kita memasang Mailcatcher sebagai paket RubyGem, yang dapat dilakukan dengan mengetikkan perintah:
sudo gem install mailcatcher
Bergantung kepada kecepatan Internet Anda, proses ini akan memakan waktu yang lumayan.
Setelah Mailcatcher terpasang, supaya Mailcatcher dijalankan secara otomatis ketika kita memulai komputer, buat sebuah file bernama mailcatcher.service dan simpan di direktori /etc/systemd/system/. Buka file tersebut dengan editor teks favorit Anda dan copas kode berikut:
[Unit] Description = MailCatcher After=network.target After=systemd-user-sessions.service [Service] Type=simple Restart=on-failure ExecStart=/usr/local/bin/mailcatcher --foreground --ip 0.0.0.0 [Install] WantedBy=multi-user.target
Jalankan perintah berikut agar file ini dijalankan di start komputer kita:
sudo systemctl enable mailcatcher
Dan ketik perintah di bawah untuk menjalankan service mailcatcher:
sudo service mailcatcher start
Juga edit file /etc/nginx/sites-avalaible/default atau pada file server block (contoh: /etc/nginx/sites-available/subdomain.conf dengan menambahkan perintah:
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_read_timeout 300; fastcgi_param PHP_VALUE "sendmail_path=/usr/bin/env /usr/local/bin/catchmail -f test@local.dev"; }
Restart service PHP FPM dengan perintah:
sudo service php7.4-fpm restart
Jalankan aplikasi anda, dan lihat email yang telah ditangkap dengan mengakses http://127.0.0.1:1080/ lewat web browser Anda. Kira-kira seperti di bawah ini:
Enjoy, semoga bermanfaat.
Leave a Reply