ISPConfig 3

Welcome to the bugtracker of the ISPConfig project. This bugtracker is for ISPConfig 3.x only.
Tasklist

FS#420 - Adding mailbox fails. No Such File

Attached to Project: ISPConfig 3
Opened by Chris Roemmich (croemmich) - Sunday, 11 January 2009, 07:24 GMT
Last edited by ISPConfig (admin) - Sunday, 11 January 2009, 16:00 GMT
Task Type Bug Report
Category Backend / Core
Status Closed
Assigned To No-one
Operating System All
Severity Medium
Priority Normal
Reported Version 3.0.0.8 RC1
Due in Version 3.0.0.9 RC2
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Adding a new mailbox fails. maildirmake errors in log file.

Example:
Add mail domain foo.com
Add mailbox bar

ISPconfig first creates: /var/vmail/foo.com
but then creates: /var/vmail/bar

/var/vmail/foo.com then disappears, haven't investigated the cause of this. (cron clean up maybe?)

My fix is below, it seems to be working fine for me, please shoot some bullets through it if there are any.


replace the function user_insert in mail_plugin_inc.php with:

function user_insert($event_name,$data) {
global $app, $conf;

// get the config
$app->uses("getconf");
$mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail');

$maildomain_path = $data['new']['maildir'];
$tmp_basepath = $data['new']['maildir'];
$tmp_basepath_parts = explode('/',$tmp_basepath);
unset($tmp_basepath_parts[count($tmp_basepath_parts)-1]);
$base_path = implode('/',$tmp_basepath_parts);

// Create the mail domain directory, if it does not exist
if(!empty($base_path) && !is_dir($base_path)) {
exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']);
$app->log('Created Directory: '.$base_path,LOGLEVEL_DEBUG);
}

// Create the maildir, if it doesn not exist, set permissions, set quota.
if(!empty($maildomain_path) && !is_dir($maildomain_path)) {
exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
exec('chown -R '.$mail_config['mailuser_name'].':'.$mail_config['mailuser_group'].' '.escapeshellcmd($data['new']['maildir']));
$app->log("Set ownership on ".escapeshellcmd($data['new']['maildir']),LOGLEVEL_DEBUG);
exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); // Avoid maildirmake quota bug, see debian bug #214911
$app->log('Created Maildir: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
}
}
This task depends upon

Closed by  ISPConfig (admin)
Sunday, 11 January 2009, 16:00 GMT
Reason for closing:  Fixed

Loading...