Welcome to the bugtracker of the ISPConfig project. This bugtracker is for ISPConfig 3.x only.
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
Opened by Chris Roemmich (croemmich) - Sunday, 11 January 2009, 07:24 GMT
Last edited by ISPConfig (admin) - Sunday, 11 January 2009, 16:00 GMT
|
DetailsAdding 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