Mail Server

Halaman ini akan mengajarkan anda untuk membuat Mail Server sendiri ๐Ÿ˜ฅ yang dimana hal ini memerlukan step yang lumayan banyak.

Mail server adalah sebuah program yang membantu dalam pendistribusian email, baik dalam proses menerima atau mengirim. Walaupun terlihat mudah dan simpel, namun email akan melewati serangkaian proses pada mail server tersebut hingga akhirnya diterima pengguna.

Secara sederhana, mail server adalah perantara dalam proses pengiriman dan penerimaan surat. Email yang dikirim akan disimpan pada mail server, kemudian selanjutnya diteruskan oleh mail server ke penerima. Source

Persyaratan

  • OS : Debian 11 ONLY
  • Virtualbox yang telah terpasang Debian 11

Penjelasan Package Yang Digunakan

Postfix.

Dovecot.

Roundcube Mail.

Langkah - Langkah

  1. Masuk sebagai SuperUser dengan command
su -

Enter SuperUser

  1. Install Postfix Dengan Command
apt -y install postfix sasl2-bin

Install Postfix 2.1

Dapat diisikan contoh john.net dll terserah saja

Install Postfix 2.2

Pastikan tidak ada yang error Install Postfix 2.3

  1. Tambahkan Domain Di Sistem Lokal
nano /etc/hosts

Add Hosts File Simpan File Konfigurasi Dengan CTRL + X, Y, ENTER

Konfigurasi Ini Membuat Server Memiliki Domain Lokal Tanpa Menggunakan DNS SERVER
  1. Cek Apakah Service Postfix Telah Berjalan Dengan Menggunakan Command
systemctl status postfix

Check Postfix Service

  1. Cek Apakah Postfix Port 25 Telah Tersedia Dengan Command
ss -tunlp | grep :25

Check Postfix Ports

  1. Cek Apakah Postfix Dapat Connect Dengan Menggunakan Command Telnet
telnet 127.0.0.1 25

Pastikan Muncul Seperti Ini Connect Postfix Through Telnet

Untuk Keluar Dari Telnet Tekan CTRL + ], ENTER, quit, ENTER
  1. Edit Postfix Untuk Mengizinkan Pengiriman Pesan Melalui Dovecot
nano /etc/postfix/main.cf

Pindah Ke Bawah File Dengan CTRL + W, CTRL + V Tambahkan Konfigurasi Ini

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, reject

Add Postfix Configuration

Simpan File Konfigurasi Dengan CTRL + X, Y, ENTER

  1. Update Database Postfix Dengan Menggunakan
newaliases
  1. Restart Postfix Dengan Command
systemctl restart postfix
  1. Install Dovecot Dengan Menjalankan Command Ini
apt -y install dovecot-core dovecot-pop3d dovecot-imapd

Install Dovecot

  1. Edit Konfigurasi Dovecot Dengan
nano /etc/dovecot/dovecot.conf

Lalu Hapus Pagar Pada Listen Menjadi Seperti Ini Edit Dovecot Configuration

Simpan File Konfigurasi Dengan CTRL + X, Y, ENTER

  1. Edit Konfigurasi Keamanan Dari Dovecot Dengan Command
nano /etc/dovecot/conf.d/10-auth.conf

Lalu Ubah Seperti Ini Hapus Pagar Dan Ubah Seperti Ini Edit Dovecot Auth Configuration

Tambahkan Seperti Gambar Edit Dovecot Auth Configuration

Simpan File Konfigurasi Dengan CTRL + X, Y, ENTER

  1. Ubah Konfigurasi Master Dari Dovecot Dengan Command Ini
nano /etc/dovecot/conf.d/10-master.conf

Lalu Samakan Seperti Ini Edit Dovecot Master Configuration

Simpan File Konfigurasi Dengan CTRL + X, Y, ENTER

  1. Cek Apakah Service Dovecot Telah Berjalan Dengan Menggunakan Command
systemctl status dovecot

Check Dovecot Service

  1. Masuk Ke Folder WWW Apache Dengan Command
cd /var/www/html
  1. Download Roundcube Dengan Command
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.1/roundcubemail-1.6.1-complete.tar.gz

Install RoundcubeMail

  1. Buat direktori baru untuk Roundcube
mkdir /var/www/html/roundcube
  1. Extract Roundcube
tar xvf roundcubemail-1.6.1-complete.tar.gz --strip-components=1 -C /var/www/html/roundcube

Extract Roundcube

  1. Ubah ownership folder Roundcube dengan command
chown -R www-data:www-data /var/www/html/roundcube
  1. Restart Apache2 Untuk Menerapkan Konfigurasi
systemctl restart apache2
  1. Lakukan Konfigurasi Awal Roundcube Dengan Cara
    1. Buka Browser
    2. Ketikkan [Ip Server]/roundcube/installer/ *Tanpa []Address Bar Roundcube Installer
    3. Pastikan muncul seperti ini Roundcube Installer
    4. Lakukan Instalasi Php Extension Roundcube Yang Memiliki Tulisan Not Ok Dengan Command apt install -y php-[nama extension]Roundcube Installer Install Contoh
      apt install -y php-intl php-curl php-ldap php-gd php-imagick php-zip
      

      Install PHP Extension Karena Kita menggunakan Mariadb *Keluarga Mysql Maka Pastikan Mysql Telah OK, Dan Tidak Perlu Menginstall Lainnya
    5. Apabila Muncul Seperti Ini Roundcube Installer Warn Lakukan Konfigurasi Pada Php Dengan Command
      Beda Versi Php Akan Memiliki Folder Yang Berbeda Sebagai Contoh Saat Ini Penulis Menggunakan Php 7.4
      nano /etc/php/7.4/apache2/php.ini
      

      Lalu CTRL + W, ketikan date.timezone, ENTER. Php Timezone Config Simpan File Konfigurasi Dengan CTRL + X, Y, ENTER
      Pastikan Sudah Menghapus ; Yang Ada Didepan
    6. Restart Apache2 Untuk Menerapkan Php Extension Terbaru
      systemctl restart apache2
      
    7. Lakukan Refresh Pada Halaman Roundcube Installer
    8. Pastikan Sudah Seperti Ini Lalu Klik Next Roundcube Good Checker
    9. Ubah product_name sesuai keinginan & Ubah support_url menjadi alamat ip server Roundcube General Configuration
    10. Masuk Ke PhpMyAdmin Yang Telah Terpasang Sebelumnya Buat Database Baru Dengan Mengklik PhpMyAdmin New Database
      Database Name & User & Password Dapat Berbeda Dari Contoh Pastikan Ingat

      PhpMyAdmin New DatabasePhpMyAdmin New DatabasePhpMyAdmin New DatabasePhpMyAdmin New Database Scroll Kebawah & Klik Go PhpMyAdmin New Database
    11. Kembali Ke Roundcube Masukkan Nama Database, Username & Password Roundcube Database Setup Configuration
    12. Ubah Konfigurasi Imap menjadi domain:143Roundcube Imap Configuration
      Domain Yang Dimaksud
    13. Ubah Konfigurasi Smtp menjadi domain:25Roundcube Smtp Configuration
      Domain Yang Dimaksud
    14. Scroll Kebawah & Klik Create Config
    15. Apabila Muncul Seperti Ini Klik ContinueRoundcube Success Configuration
    16. Pastikan Muncul Seperti Ini Roundcube Test Configuration Page
    17. Initialize Database Dengan Mengklik Initialize databaseRoundcube Test Page Database Initialization Pastikan Seperti Ini Roundcube Test Page Database Initialization
    18. Tambahkan User baru Dengan Command
      adduser [username]
      

      Tekan Enter Pada Semua Isian Untuk Default Value Add User
    19. Lakukan Testing Awal Pada Roundcube Dengan Cara
      Kedua Tes WAJIB Bertuliskan Ok !!!

      Fokus Pada Form Ini Roundcube Test Form
      Pada OS Saya Terdapat 2 User Yaitu john, user
      Maka Email / Username Dari Keduanya Adalah [email protected], [email protected]
      Password Dari Email / Username Tersebut Adalah Password Login Linux

      Mari Kita Lakukan Imap Testing Terlebih Dahulu *Karena Selalu Berhasil ๐Ÿ˜ฅ:thumbsup:
      1. Test user john
        • Masukkan Username john
        • Masukkan Password user Pastikan Seperti Ini Roundcube Test John Imap
      2. test user user
        • Masukkan Username user
        • Masukkan Password user Pastikan Seperti Ini Roundcube Test User Imap

      Ok Tidak Ada Masalah ๐Ÿ˜Œ Padahal Dibaliknya Ada ๐Ÿ˜ญ
      Mari Kita Lanjutkan Dengan Testing Smtp ๐Ÿ˜ฐ
      1. Test user john
        • Masukkan Username john
        • Masukkan Password user
        • Masukkan Sender [email protected] / username@domain Jika Mengetes Sendiri
        • Masukkan Recipient [email protected] / username@domain Jika Mengetes Sendiri Pastikan Seperti Ini Roundcube Test John Imap
      2. test user user
        • Masukkan Username user
        • Masukkan Password user
        • Masukkan Sender [email protected] / username@domain Jika Mengetes Sendiri
        • Masukkan Recipient [email protected] / username@domain Jika Mengetes Sendiri Pastikan Seperti Ini Roundcube Test User Imap

      Ok Sukses Semua ๐Ÿ˜Œ :thumbsup:
  2. Hapus Installer Dari Roundcube Dengan Command
    Mohon Berhati Hati dalam Pengetikan Salah Hapus File Dapat Menyebabkan Roundcube Error & Harus mengulangi Setup Kembali
rm -rf /var/www/html/roundcube/installer
  1. Restart Apache2 Untuk Menerapkan Konfigurasi
systemctl restart apache2
  1. Testing Roundcube Dengan Browser
    1. Buka Kedua browser
    2. Ketikkan [Ip Server]/roundcube/ *Tanpa [] Pada Kedua Browser Address Bar Roundcube
    3. Pastikan Muncul Seperti Ini Roundcube Login Page
    4. Login Salah Satu Browser Dengan User 1 Contoh johnRoundcube Login John Pastikan Muncul Seperti Ini Roundcube Dashboard John
    5. Login Pada Browser Lain Untuk User 2 Contoh userRoundcube Login User Pastikan Muncul Seperti Ini Roundcube Dashboard User
    6. Kirim Pesan Dengan Cara & Lakukan Sebaliknya Roundcube Sends Mail
    7. Hasil Akhir Roundcube Result