Go Back   HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials > ISPConfig 3 > Tips/Tricks/Mods

Do you like HowtoForge? Please consider supporting us by becoming a subscriber.
Reply
 
Thread Tools Display Modes
  #1  
Old 12th September 2012, 21:23
ethraza ethraza is offline
Junior Member
 
Join Date: Jan 2012
Posts: 6
Thanks: 0
Thanked 1 Time in 1 Post
Thumbs up Better integration of webmail link button

I would love if I could click on that tiny little button at the far right of a client email and it automatic loggins to that account so I can see if their is any problem there.

While this drean does not come true I have made this little changes to the ISPConfig 3.0.4.6 so it at least passes the user and host of the client email to the webmail.
(I use Roundcube, so if you use other Webmail, you may need to change the _user and _host variables on the $opts line.)

File: /usr/local/ispconfig/interface/web/mail/webmailer.php

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');

$opts '?_user='.$dbData['login'].'&_host='.$serverData['server_name'];

if(
$global_config['webmail_url'] != '') {
        
header('Location:' $global_config['webmail_url'].$opts);
} 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'.$opts);
}
exit;
?>
Reply With Quote
The Following User Says Thank You to ethraza For This Useful Post:
till (13th September 2012)
Sponsored Links
  #2  
Old 13th September 2012, 19: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 19:11.
Reply With Quote
  #3  
Old 20th September 2012, 17:46
ethraza ethraza is offline
Junior Member
 
Join Date: Jan 2012
Posts: 6
Thanks: 0
Thanked 1 Time in 1 Post
Default Great plugin

If this come in a future version of ISPConfig, please think about add options to configure a user to use with impersonate plugin.

Using impersonate plugin for Roundcube:
To login user@domain.net without password, just use user@domain.net*admin@domain.net and give the admin account password.

Thanks
Reply With Quote
Reply

Bookmarks

Tags
email, webmail, webmailer

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Horde Groupware Webmail Edition ByteMe Networking Tips/Tricks/Mods 17 20th December 2012 11:12
After updating Fedora 13 - Unable to login in kernel 3 and 5 Besrilo Kernel Questions 6 12th August 2010 20:01
automatic webmail link admins Installation/Configuration 16 22nd June 2009 17:42
colocation problem d3m0nic Installation/Configuration 14 24th June 2006 00:18
simpler link to webmail t_ras General 1 10th February 2006 01:24


All times are GMT +2. The time now is 05:05.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.