Florian Schaal
2014-05-18 58023ffd5ffbacac99776debf72aff6f49378200
use doveadm instead of 'du -s' for email-quota
1 files modified
10 ■■■■■ changed files
server/lib/classes/cron.d/100-monitor_email_quota.inc.php 10 ●●●●● patch | view | raw | blame | history
server/lib/classes/cron.d/100-monitor_email_quota.inc.php
@@ -77,10 +77,20 @@
        $mailboxes = $app->db->queryAllRecords("SELECT email,maildir FROM mail_user WHERE server_id = $server_id");
        if(is_array($mailboxes)) {
            //* with dovecot we can use doveadm instead of 'du -s'
            $dovecot = false;
            if (isset($mail_config['pop3_imap_daemon']) && $mail_config ['pop3_imap_daemon'] = 'dovecot' && is_executable('doveadm')) {
                $dovecot = true;
            }
            foreach($mailboxes as $mb) {
                $email = $mb['email'];
                $email_parts = explode('@', $mb['email']);
                $filename = $mb['maildir'].'/.quotausage';
                if(!file_exists($filename) && $dovecot) {
                    exec('doveadm quota recalc -u '.$email);
                }
                if(file_exists($filename) && !is_link($filename)) {
                    $quotafile = file($filename);
                    preg_match('/storage.*?([0-9]+)/s', implode('',$quotafile), $storage_value);