Membuat Webmail di server
1. Persiapan yang Diperlukan
- 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
- 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