From f382f091aa97d10056b4c433aa55298fece010d4 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Wed, 13 Aug 2014 07:16:30 -0400 Subject: [PATCH] Merge remote-tracking branch 'ispc/master' --- server/lib/classes/cron.d/100-monitor_email_quota.inc.php | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/server/lib/classes/cron.d/100-monitor_email_quota.inc.php b/server/lib/classes/cron.d/100-monitor_email_quota.inc.php index 62e97b4..5d0c7a0 100644 --- a/server/lib/classes/cron.d/100-monitor_email_quota.inc.php +++ b/server/lib/classes/cron.d/100-monitor_email_quota.inc.php @@ -77,10 +77,21 @@ $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')) { + exec('doveadm quota 2>&1', $tmp_output, $tmp_retval); // with dovecot 2.2.x 'doveadm quota' is unuseable + if ($retval = 64) $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); -- Gitblit v1.9.1