#!/usr/bin/php
<?php

	/// init
	global $ini;
	global $node;

	require(dirname(__FILE__)."/../include/functions.php");
	init();

	if (get_ini_opt('cron','cleanup-maildir') === '0') { exit(0); }

	check_live();

	$sql="SELECT `mail_users`.name AS user,
			IF (`dom_host`.`host` IS NULL, `domain`.`name`, CONCAT(`dom_host`.`host`,'.',`domain`.`name`)) AS dom
			FROM `mail_users`
			LEFT JOIN `domain` ON `mail_users`.`domainid`=`domain`.`id`
			LEFT JOIN `dom_host` ON `mail_users`.`hostid`=`dom_host`.`id`
			;";

	$res=DBquery($sql);

	if ($res->num_rows<1) { die(1); }

	$dbmarr=array();
	while ($srow=$res->fetch_assoc())
	{
		$dbmarr[$srow['dom']][]=$srow['user'];
	}

	$mailroot=$ini['global']['mailroot'];

	$chrdir='';
	if (array_key_exists('chrdir',$ini['dovecot']))
	{
		$chrdir=$ini['dovecot']['chrdir'];
	}

	$cmailroot=$chrdir.$mailroot;

	if (strlen($mailroot)>1 && (is_dir($cmailroot)))
	{
		//read mail dir for domains
		$fsdomarr=listdir($cmailroot);
		foreach ($fsdomarr as $fsdom)
		{
			$fsmbarr=listdir($cmailroot."/".$fsdom);
			foreach ($fsmbarr as $fsmb)
			{
				if ( ( !(empty($dbmarr[$fsdom])) && !(in_array($fsmb, $dbmarr[$fsdom])) ) || (empty($dbmarr[$fsdom])) )
				{
					$mbdir=$cmailroot."/".$fsdom."/".$fsmb;
					if (is_dir($mbdir."/Maildir"))
					{
						echo "[info] mailbox deleted: $fsmb@$fsdom [$mailroot/$fsdom/$fsmb]\n";
						system("rm -r $mbdir");
					}
				}
			}
		}
	}

	DBclose();

?>
