Bu kılavuzda, posta kutusu kotalarının ayarlanmasını ele alacağız. Postfixadmin'de varsayılan olarak kotayı belirleme seçeneği çalışmaz ve ek yapılandırma gerektirir. Biz bu ayarı, Dovecot hizmeti için Ubuntu/Debian tabanlı bir posta sunucusunda gerçekleştiriyoruz. Bu yapılandırma, bir posta kutusu için bir sınır belirlemeyi sağlar; bu, özellikle ağır ek dosyalar veya spam nedeniyle kurumsal posta kutularının hızlıca dolup, VPS sunucusunun SSD disk alanını aşmaması açısından önemlidir.
Bu rehberde, posta sunucunuzun halihazırda kurulu ve yapılandırılmış olduğu varsayılmakta, sadece posta kutusu kotalarının ayarlanması gerektiği düşünülmektedir. Posta sunucusu yapılandırmasıyla ilgili daha fazla bilgi için buraya göz atabilirsiniz:
Ayrıca, işletim sistemi önceden yapılandırılmış bir VPS sipariş ederek, hazır bir kurumsal posta sunucusuna VPS sunucu fiyatına sahip olabilirsiniz.
1. Dovecot Hizmetinin Yapılandırılması
vi /etc/dovecot/conf.d/10-mail.conf
mail_plugins = $mail_plugins quota
Dosyayı kaydediyoruz.
vi /etc/dovecot/conf.d/20-imap.conf
protocol imap {
mail_plugins = $mail_plugins imap_quota
}
Dosyayı kaydediyoruz.
vi /etc/dovecot/conf.d/10-master.conf
service dict {
unix_listener dict { mode = 0660 user = vmail group = vmail } }
Dosyayı kaydediyoruz.
vi /etc/dovecot/conf.d/90-quota.conf
plugin {
quota = dict:User quota::proxy::quota
}
Dosyayı kaydediyoruz.
vi /etc/dovecot/dovecot.conf
dict {
quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
vi /etc/dovecot/dovecot-dict-sql.conf.ext
connect = host=localhost dbname=postfix user=postfix password=postfix123
map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}
İlk satırda, posta sunucusu kurulumu sırasında tanımlanan mevcut veritabanı bağlantı bilgilerini belirtmeniz gerekmektedir.
vi /etc/dovecot/dovecot-sql.conf.ext
user_query = SELECT CONCAT('/home/mail/',LCASE(domain
),'/',LCASE(maildir
)), 1024 AS uid, 1024 AS gid, CONCAT('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u'
Dosyayı kaydediyoruz.
Hizmeti yeniden başlatıyoruz:
systemctl restart dovecot
Posta kutusu kotasının çalışıp çalışmadığını, belirlenen kotalı bir mevcut posta kutusunu belirterek komut satırında şu komutla kontrol edebilirsiniz:
doveadm quota get -u user@domain.tld
2. Kota Aşım Bildirimlerini Ayarlama
vi /etc/dovecot/conf.d/90-quota.conf
Yapılandırmaya şu satırları ekliyoruz:
plugin {
quota_warning = storage=95%% quota-warning 95 %u
quota_warning2 = storage=80%% quota-warning 80 %u
}
Aynı dosyada, "service quota-warning" bölümünü şu şekilde düzenliyoruz:
service quota-warning {
executable = script /usr/local/bin/quota-warning.sh
user = dovecot
unix_listener quota-warning {
user = vmail
}
}
Bildirim göndermek için bir script oluşturuyoruz:
vi /usr/local/bin/quota-warning.sh
#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User quota:noenforcing" From: postmaster@domain.tld Subject: kota uyarısı
Posta kutunuz şu anda % $PERCENT doluluğa ulaşmıştır.
EOF
Dosyayı kaydediyoruz. E-posta gönderim adresini kendinize göre değiştirin. Çalıştırma izni verip ayarları uyguluyoruz:
chmod +x /usr/local/bin/quota-warning.sh
systemctl restart dovecot
Scriptin çalışmasını komut satırında kontrol ediyoruz:
/usr/local/bin/quota-warning.sh 85 user@domain.tld
Var olan bir posta kutusu belirtin, bu posta kutusuna bir e-posta gitmelidir.
Kota yapılandırması tamamlanmıştır; eğer bir posta kutusuna kapasitesini aşan bir ekli mesaj gönderilirse, mesaj teslim edilmeyecek ve göndericiye posta kutusunun dolu olduğuna dair bir mesaj ulaşacaktır. Artık Postfixadmin'de belirlenen kotalar ayarlanmış ve çalışır durumdadır.