View Single Post
  #2  
Old 13th September 2012, 18:07
ethraza ethraza is offline
Junior Member
 
Join Date: Jan 2012
Posts: 6
Thanks: 0
Thanked 1 Time in 1 Post
Thumbs up The right and universal way

Hi,
I decided to do that the right way, so the webmailer.php would be like that:

PHP Code:
<?php

require_once('../../lib/config.inc.php');
require_once(
'../../lib/app.inc.php');

//* Check permissions for module
$app->auth->check_module_permissions('mail');

/* get the id of the mail (must be int!) */
if (!isset($_GET['id'])){
    die (
"No E-Mail selected!");
}
$emailId intval($_GET['id']);

/*

 * Get the data to connect to the database
 */
$dbData $app->db->queryOneRecord("SELECT server_id,login FROM mail_user WHERE mailuser_id = " $emailId);
$serverId intval($dbData['server_id']);

if (
$serverId == 0){
    die (
"No E-Mail - Server found!");
}

$serverData $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ".$serverId);

$app->uses('getconf');
$global_config $app->getconf->get_global_config('mail');

if(
$global_config['webmail_url'] != '') {
        
header('Location:' preg_replace(array('/%u/','/%h/'), array($dbData['login'], $serverData['server_name']), $global_config['webmail_url']));
} else {

/*
 * We only redirect to the login-form, so there is no need, to check any rights
 */
        
isset($_SERVER['HTTPS'])? $http 'https' $http 'http';
        
header('Location:' $http '://' $serverData['server_name'] . '/webmail');
}
exit;
?>
This will work for any webmail, because now you go to System->Interface Config->Mail and set the Webmail URL to something like that (example for Roundcube):
PHP Code:
http://webmail.your_domain.com?_user=%u&_host=%h 
But ISPConfig regex will not allow you to insert anything but alpha numeric characters in this config field.
So for now you can edit the sys_ini table on ispconfig DB and update this config by hand.

Hope it comes in the next version of ISPConfig.

Hey Devs, here is my little contribution.

Last edited by ethraza; 13th September 2012 at 18:11.
Reply With Quote