Kategori: Laravel

Membuat Webmail di server

Dipublikasikan pada 2025-05-18 16:15:36

Gambar

 Membuat Webmail di server 

1. Persiapan yang Diperlukan

 

  1. Domain dan DNS Records
    • Pastikan Anda memiliki domain (misalnya, example.com).
    • Atur DNS untuk email: 
      • MX record ke mail.example.com
      • A record untuk mail.example.com yang mengarah ke server Anda
      • TXT record untuk SPF, DKIM, dan DMARC agar email tidak masuk spam
  2. Server Mail (SMTP & IMAP/POP3)
    • Anda memerlukan SMTP untuk mengirim email dan IMAP/POP3 untuk menerima email.
    • Karena Anda hanya punya PHP dan MySQL, Anda harus menginstal Postfix dan Dovecot.


 

2. Instalasi Webmail (Roundcube)

 
Langkah ini akan menginstal Roundcube Webmail sebagai antarmuka email berbasis web.
 

(a) Install Dependensi

 
Jalankan perintah berikut:
 

sudo apt update && sudo apt install nginx php php-fpm php-mysql php-xml php-mbstring php-intl php-curl php-zip unzip -y


Pastikan PHP-FPM berjalan:
 

sudo systemctl restart php*-fpm


 

(b) Buat Database untuk Roundcube

 
Masuk ke MySQL:
 

sudo mysql -u root -p


Kemudian buat database dan user untuk Roundcube:
 

CREATE DATABASE roundcubemail;
CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'password_kuat';
GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
FLUSH PRIVILEGES;
EXIT;


 

(c) Install Roundcube

 
Unduh Roundcube dari situs resminya:
 

 cd /var/www
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.5/roundcubemail-1.6.5-complete.tar.gz
tar -xvzf roundcubemail-1.6.5-complete.tar.gz
mv roundcubemail-1.6.5 roundcube
rm roundcubemail-1.6.5-complete.tar.gz


Berikan izin:
 

 chown -R www-data:www-data /var/www/roundcube
chmod -R 755 /var/www/roundcube


 

(d) Konfigurasi Nginx untuk Roundcube

 
Buat file konfigurasi:
 

 sudo nano /etc/nginx/sites-available/roundcube


Tambahkan konfigurasi berikut:
 

 server {
    listen 80;
    server_name webmail.example.com;

    root /var/www/roundcube;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|otf|eot|html|json)$ {
        expires max;
        log_not_found off;
    }
}


Simpan, lalu aktifkan konfigurasi:
 

 sudo ln -s /etc/nginx/sites-available/roundcube /etc/nginx/sites-enabled/
sudo systemctl restart nginx


 

(e) Konfigurasi Roundcube

 
Buka browser dan akses:
 

 http://webmail.example.com/installer


Ikuti petunjuk instalasi dan gunakan database yang telah dibuat sebelumnya.
 
Setelah selesai, hapus folder installer:
 

 rm -rf /var/www/roundcube/installer


 

3. Install Mail Server (Postfix & Dovecot)

 
Agar bisa mengirim dan menerima email, kita butuh Postfix (SMTP) dan Dovecot (IMAP/POP3).
 

(a) Install Postfix

 
Jalankan:
 

 sudo apt install postfix -y


Saat ditanya General type of mail configuration, pilih Internet Site, lalu masukkan nama domain (misalnya mail.example.com).
 
Edit konfigurasi Postfix:
 

 sudo nano /etc/postfix/main.cf


Ubah atau tambahkan:
 

 myhostname = mail.example.com
mydestination = $myhostname, example.com, localhost
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/


Restart Postfix:
 

 sudo systemctl restart postfix


 

(b) Install Dovecot

 
Jalankan:
 

 sudo apt install dovecot-core dovecot-imapd dovecot-pop3d -y


Edit file konfigurasi Dovecot:
 

 sudo nano /etc/dovecot/conf.d/10-mail.conf


Ubah:
 

 mail_location = maildir:~/Maildir


Edit file autentikasi:
 

 sudo nano /etc/dovecot/conf.d/10-auth.conf


Pastikan:
 

 disable_plaintext_auth = no
auth_mechanisms = plain login


Lalu edit file berikut:
 

 sudo nano /etc/dovecot/conf.d/10-master.conf


Ubah bagian ini:
 

 service auth {
    unix_listener /var/spool/postfix/private/auth {
        mode = 0660
        user = postfix
        group = postfix
    }
}


Restart Dovecot:
 

sudo systemctl restart dovecot


 

4. Buat Akun Email

 
Buat akun pengguna untuk email:
 

 sudo adduser emailuser


Masukkan kata sandi dan detail lainnya.
 
 

5. Tes SMTP & IMAP

 

  • Tes SMTP (Postfix)
  • telnet mail.example.com 25
    
  • Jika berhasil:
  • 220 mail.example.com ESMTP Postfix
    
  • Tes IMAP (Dovecot)
  • telnet mail.example.com 143
    
  • Jika berhasil:
  • * OK [CAPABILITY IMAP4rev1 …] Dovecot ready.
    


 

6. Konfigurasi Roundcube untuk SMTP & IMAP

 
Buka:
 

sudo nano /var/www/roundcube/config/config.inc.php


Sesuaikan dengan server email Anda:
 

 $config['default_host'] = 'ssl://mail.example.com';
$config['smtp_server'] = 'ssl://mail.example.com';
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';


Restart Nginx:
 

 sudo systemctl restart nginx


 

7. Akses Webmail

 
Buka browser dan akses:
 

http://webmail.example.com


Login dengan emailuser@example.com.
 
 

8. (Opsional) Tambahkan SSL

 
Untuk keamanan, gunakan Let's Encrypt:
 

audo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d mail.example.com -d webmail.example.com


Kesimpulan

 
Dengan langkah-langkah di atas, Anda sekarang memiliki:

Webmail (Roundcube)
Mail Server (Postfix & Dovecot)
Bisa Kirim & Terima Email