Memperkaya webmail Roundcube: memahami sistem plugin, memasang plugin password untuk ganti password sendiri, managesieve untuk filter Sieve, enigma untuk OpenPGP, serta mengonfigurasi multi-auth melalui LDAP dan login OAuth2/OIDC yang disempurnakan di Roundcube 1.7.

Webmail dasar sudah berfungsi sejak episode 8. Episode ini mengubahnya menjadi webmail dewasa: plugin. Roundcube dirancang modular — hampir semua fitur canggih datang dari plugin, dan konfigurasi multi-autentikasi membuka pintu integrasi dengan sistem identitas kalian.
Kita akan memasang plugin esensial (password, managesieve, enigma, archive, markasjunk), memahami cara mengaktifkannya lewat config.inc.php, lalu menyambungkan Roundcube ke OAuth2/OIDC — kemampuan yang disempurnakan besar-besaran sejak Roundcube 1.7.
Plugin adalah direktori di plugins/<nama>/ berisi satu atau lebih kelas PHP yang memperluas perilaku Roundcube. Setiap plugin diaktifkan lewat array plugins di konfigurasi:
ls /var/www/webmail/plugins/Daftar ini menunjukkan plugin bawaan yang terinstal. Aktivasi tinggal menambahkannya ke array plugins — Roundcube 1.7 memudahkan lewat console:
php /var/www/webmail/bin/console config set plugins '["password","managesieve","enigma","archive","markasjunk"]'Setelah disimpan, plugin aktif pada reload halaman. Beberapa plugin butuh konfigurasi tambahan di config/config.inc.php lewat $config['plugin_<nama>_...'].
Tiga plugin yang mengubah pengalaman harian pengguna:
Archive, mendorong budaya menyimpan yang rapi.Konfigurasi password menentukan koneksi ke database:
php /var/www/webmail/bin/console config set password_driver sql
php /var/www/webmail/bin/console config set password_db_dsn 'mysql://mail:ganti-password@localhost/maildb'Dengan password_db_dsn mengarah ke database virtual users, ganti password langsung mengubah tabel virtual_users — dan karena Dovecot membaca dari database yang sama, perubahan berlaku seketika.
Sieve adalah bahasa pemfilteran server-side: aturan berjalan di Dovecot tanpa klien harus aktif. Plugin managesieve memberi pengguna antarmuka visual untuk mengelola skrip Sieve — dan perlu kita aktifkan dukungannya di Dovecot juga.
Di Roundcube, aktifkan plugin dan arahkan ke port Managesieve Dovecot:
php /var/www/webmail/bin/console config set plugins '["password","managesieve","enigma","archive","markasjunk"]'
php /var/www/webmail/bin/console config set managesieve_host 'ssl://localhost'
php /var/www/webmail/bin/console config set managesieve_port 4190Di sisi Dovecot, aktifkan plugin Sieve di conf.d/20-lmtp.conf (sudah kita siapkan di episode 9):
protocol lmtp {
mail_plugins = sieve
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}Contoh aturan yang dihasilkan Managesieve — memindahkan email dari newsletter ke folder Updates:
require ["fileinto"];
if anyof (header "subject" contains "[Newsletter]") {
fileinto "Updates";
stop;
}Aturan ini dieksekusi Dovecot saat email masuk, bahkan ketika pengguna sedang offline.
enigma mengintegrasikan OpenPGP ke antarmuka: pengguna menyimpan private key, mengenkripsi/menandatangani email, dan membaca email terenkripsi — semua dari browser. Aktivasi:
php /var/www/webmail/bin/console config set enigma_pgp_homedir '/var/www/webmail/enigma'
php /var/www/webmail/bin/console config set enigma_pgp_privkeys '/var/www/webmail/enigma/privkeys'Pastikan direktori dapat ditulis proses web dan tidak dapat dibaca publik. Enigma memanfaatkan gnupg yang terpasang di server — cek ketersediaannya dengan gpg --version.
Roundcube default hanya mengenali user di database mail. Untuk lingkungan dengan identitas terpusat, ada dua jalur:
Login OAuth2/OIDC — Roundcube 1.7 menyempurnakan dukungan OIDC, sehingga webmail bisa ikut SSO organisasi. Konfigurasi via config:
php /var/www/webmail/bin/console config set oauth_provider 'generic'
php /var/www/webmail/bin/console config set oauth_client_id 'roundcube-app'
php /var/www/webmail/bin/console config set oauth_client_secret 'rahasia'
php /var/www/webmail/bin/console config set oauth_auth_uri 'https://auth.example.com/application/o/authorize/'
php /var/www/webmail/bin/console config set oauth_token_uri 'https://auth.example.com/application/o/token/'LDAP address book — plugin ldap memungkinkan pencarian kontak di server LDAP/AD. Ini pelengkap SSO: identitas login dari OIDC, direktori kontak dari LDAP.
Info
Saat mengaktifkan OAuth2, perhatikan mapping identitas: pastikan claim email dari IdP cocok dengan email di tabel virtual_users. Roundcube 1.7 menangani ini lewat oauth_identity_map, sehingga email yang berbeda format tetap bisa dipetakan.
Terakhir, sentuhan branding:
php /var/www/webmail/bin/console config set skin elastic
php /var/www/webmail/bin/console config set language id_IDskin elastic adalah tema responsif bawaan; language id_ID mengaktifkan paket bahasa Indonesia (pastikan paketnya terpasang di program/localization/id_ID/). Kombinasi skin dan bahasa mengubah kesan pertama pengguna — detail kecil dengan dampak besar pada adopsi.
Episode 20 selesai. Inti yang harus dibawa pulang:
plugins; konsol bin/console config set adalah cara teraman.password memperbarui hash langsung di database virtual users.managesieve menghubungkan Roundcube ke Sieve Dovecot untuk filter server-side.enigma membawa OpenPGP ke webmail.Webmail kini dewasa. Di episode 21 kita melihat ke depan: Fitur Modern & Roadmap — Postfix 3.11, Dovecot 2.4, dan Roundcube 1.7, plus tren industri 2026. Sampai jumpa di episode 21!