Mengendalikan ruang penyimpanan email: konsep quota per user dan per domain, konfigurasi quota_rule di Dovecot, layanan quota-status yang menolak email saat mailbox penuh, serta perawatan rutin menggunakan doveadm mailbox dan kebijakan pembersihan folder spam dan trash.

Email yang tidak dibatasi akan tumbuh tanpa henti — dan disk penuh adalah bencana nomor satu di mail server: antrian macet, log berhenti, bahkan seluruh sistem bisa tidak berfungsi. Episode ini membangun pagar yang sehat: quota.
Kita akan memasang plugin quota di Dovecot, menetapkan batas per user dan per domain, menolak email saat mailbox penuh lewat layanan quota-status, lalu belajar merawat mailbox dengan doveadm dan kebijakan pembersihan folder.
Quota membatasi dua hal: jumlah pesan dan total ukuran. Batas bisa diterapkan per user, per domain, atau keduanya. Keputusan desain yang penting: kapan quota diperiksa?
quota-status.Kombinasi terbaik: cek cepat di SMTP untuk sebagian besar kasus, dan biarkan Dovecot menolak di penyimpanan sebagai jaring pengaman.
Aktifkan plugin quota di conf.d/10-mail.conf dan conf.d/90-quota.conf. Dengan doveadm config set, perubahan langsung tercatat:
doveadm config set mail_plugins 'quota'
doveadm config set quota_driver count
doveadm config set quota_rule 'user=*:storage=2GB:messages=100000'
doveadm config set quota_rule2 'user=*:storage=4GB'
doveadm config set quota_exceeded_message 'Quota exceeded, mailbox is full'Makna dari aturan di atas:
quota_rule — batas utama: 2 GB per user.quota_rule2 — aturan kedua: jendela tambahan 4 GB (menumpuk menjadi 6 GB total) — contoh aturan berlapis.quota_exceeded_message — pesan yang dikembalikan saat mailbox penuh.Untuk per-domain, ganti pola user=* dengan prefiks seperti *@example.com. Reload dan periksa:
sudo dovecot reload
doveconf quota_driver quota_rulePlugin quota-status menyediakan protokol kecil yang bisa ditanya Postfix: "apakah user ini penuh?" Jika ya, Postfix menolak di gerbang sebelum pesan masuk antrian. Aktifkan layanan di conf.d/90-quota.conf:
service quota-status {
executable = quota-status -p postfix
unix_listener /var/spool/postfix/private/quota-status {
mode = 0660
user = postfix
group = postfix
}
client_limit = 1
}Lalu arahkan Postfix memakainya lewat policy service di main.cf:
sudo postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service unix:private/quota-status'
sudo postfix reloadAlur barunya: Postfix menerima email → menanyakan quota-status → jika user penuh, langsung 450 4.2.2 Mailbox full tanpa menarik pesan. Efisien dan melindungi antrian.
Info
Perhatikan urutan di smtpd_recipient_restrictions: reject_unauth_destination muncul sebelum policy, supaya domain yang tidak kita layani tidak sampai menghabiskan query quota. Urutan restrictions adalah hal yang akan terus kalian perhatikan di episode 14 dan 16.
doveadm quota adalah jendela utama untuk melihat pemakaian. Gunakan tiga varian ini:
doveadm quota get -u admin@example.com
doveadm quota get -ABaris pertama menampilkan pemakaian satu user; -A menampilkan semua user. Untuk audit cepat siapa yang hampir penuh:
doveadm quota get -A | sort -k4 -nOutput doveadm quota get -A diurutkan berdasarkan pemakaian memudahkan menemukan user yang paling boros ruang.
doveadm mailbox menangani tugas perawatan per folder:
doveadm mailbox status -u admin@example.com messages quota 'INBOX' '*'
doveadm mailbox create -u admin@example.com Archive
doveadm mailbox delete -u admin@example.com 'Trash'Baca maknanya: baris pertama menampilkan statistik folder, baris kedua membuat folder baru, baris ketiga menghapus folder. Untuk menghitung ukuran seluruh mailbox, doveadm mailbox status -u user quota '*' menampilkan total pemakaian semua folder.
Quota paling efektif saat didampingi kebijakan pembersihan:
Jadwal pembersihan bisa berjalan sebagai cron memanggil doveadm:
doveadm expunge -A 'Trash' savedbefore 30d
doveadm expunge -A 'Junk' savedbefore 14dJalankan dua baris di atas sebagai cron harian — doveadm expunge -A 'Trash' savedbefore 30d menghapus pesan Trash yang lebih tua dari 30 hari untuk semua user. Disk yang terkontrol adalah mail server yang bahagia.
Episode 11 selesai. Inti yang harus dibawa pulang:
quota_rule dan quota_rule2 membangun batas berlapis di Dovecot.quota-status membuat Postfix menolak email penuh di gerbang tanpa menarik pesan.doveadm quota get dan doveadm mailbox adalah alat audit dan perawatan utama.Ruang sudah dipagari. Di episode 12 kita mengamankan data: Backup & Migration — cadangkan Maildir dan database, pulihkan saat rusak, dan migrasi antar server dengan doveadm sync dan imapsync. Sampai jumpa di episode 12!