Instalasi Maildev Sebagai Fake SMTP di RHEL 8

Apa itu Maildev?

Maildev adalah salah satu fake smtp (Simple Mail Transfer Protocol) server yang digunakan untuk melakukan testing email tanpa perlu melakukan spamming ke email asli. Ada kala program yang developer buat mempunyai fitur pengiriman email seperti proses lupa password atau aktivasi akun setelah registrasi dalam aplikasi. Dengan hadirnya fake smtp, ini merupakan sebuah cara yang mudah dalam melakukan tes aplikasi selama pengembangan.

Aplikasi fake smtp memiliki banyak ragam. Berikut aplikasi fake smtp yang penulis pernah gunakan yaitu mailslurperFakeSMTP, dan maildev. Ketiga aplikasi ini bersifat open source. Dalam artikel ini, penulis akan membahas tentang bagaimana cara melakukan konfigurasi maildev di RHEL8.

Bagaimana Cara Konfigurasi Maildev di RHEL8?

Maildev berjalan di atas node.js dan npm. Sebelum melakukan install maildev, penulis perlu melakukan instalasi node.js di server. Saat ini, penulis akan menggunakan node.js dengan stable release. Selama melakukan konfigurasi, penulis menggunakan user root (command: sudo su dan masukkan password user).

Install Node.js di RHEL8

  1. Install epel-release terlebih dahulu menggunakan command:
    sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
  2. Tambahkan node.js yum repository menggunakan command berikut:
    curl -sL https://rpm.nodesource.com/setup_18.x | sudo -E bash -
  3. Install node.js dan npm menggunakan command:
    sudo yum install nodejs
  4. Setelah melakukan proses instalasi, verifikasi versi node.js dan npm yang diinstall menggunakan command
    node –version 
    npm -version

Konfigurasi Maildev di RHEL8

  1. Stop dan disable service postfix terlebih dahulu menggunakan 2 command berikut:
    sudo systemctl stop postfix
    sudo systemctl disable postfix
  2. Install maildev menggunakan command:
    sudo npm install -g maildev
  3. Masuk ke direktori /etc/systemd/system/ menggunakan command:
    cd /etc/systemd/system/
  4. Buat file maildev.service menggunakan command:
    sudo vi maildev.service
  5. Berikut isi template file maildev.service:
    [Unit]
    Description=Maildev SMTP and web server 
     
    [Service]
    ExecStart=/bin/maildev -s 25 -w 80 --outgoing-host NAME OF MAIL SERVER --outgoing-port 25 --auto-relay --auto-relay-rules /opt/config/maildev.json 
    User=root
    Restart=on-failure
    RestartSec=5
    
    [Install]   
    WantedBy=default.target
  6. Dalam tutorial ini, penulis akan menggunakan port default smtp yaitu 25, port default web maildev yaitu 1080. Dikarenakan hostname Virtual Machine CentOS yang digunakan penulis adalah APPMDW001, maka penulis akan set APPMDW001 sebagai outgoing-host. Berikut hasil modifikasi template di atas:
    [Unit]  
    Description=Maildev SMTP and web server  
    
    [Service]
    ExecStart=/bin/maildev -s 25 -w 1080 --outgoing-host APPMDW001 --outgoing-port 25 --auto-relay --auto-relay-rules /opt/config/maildev.json   User=root   
    Restart=on-failure   
    RestartSec=5  
    
    [Install]
    WantedBy=default.target
  7. Setelah itu jangan lupa save dan quit dari vi editor (:wq!). Reload daemon menggunakan command:
    sudo systemctl daemon-reload
  8. Masuk ke direktori opt menggunakan command:
    cd /opt
  9. Buat direktori config menggunakan command:
    sudo mkdir config
  10. Masuk ke direktori opt/config menggunakan command:
    cd /opt/config
  11. Buat file maildev.json untuk otorisasi domains menggunakan command ini:
    sudo vi maildev.json
  12. Berikut template dari isi file maildev.json:
    [   
    { "deny": "*" },   
    { "allow": "APPMDW001"},  
     {"smtp":25}  
    ]
  13. Lakukan save dan quit (:wq!).

Open firewall OS

  1. Buka port 25 dan 1080 di firewall menggunakan command:
    sudo firewall-cmd --zone=public --add-port=25/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=1080/tcp --permanent
  2. Reload firewall mengggunakan command:
    sudo firewall-cmd --reload

Maildev Service Command

Untuk menyalakan service maildev gunakan command:
systemctl start maildev.service

Untuk melakukan pengecekan status service maildev gunakan command:
systemctl status maildev.service

Untuk melakukan enable service, gunakan command:
systemctl enable maildev.service

Akses Maildev via Browser

Melalui browser, akses User Interface maildev menggunakan http://ipAddress:1080. Contoh: http://localhost:1080. Dengan menggunakan ini, developer dapat melakukan view email selama proses pengujian dalam pengembangan aplikasi pada fitur pengiriman email.

Referensi

https://maildev.github.io/maildev/

https://it.izero.fr/linux-installation-serveur-maildev/

https://github.com/maildev/maildev/issues/93

https://linuxize.com/post/how-to-install-node-js-on-centos-7/

https://dproknowledgetransfer.wordpress.com/2020/09/19/maildev-as-fake-smtp-for-development/