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: <?phprequire_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;?>
The right and universal way Hi, I decided to do that the right way, so the webmailer.php would be like that: PHP: <?phprequire_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: 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.
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 [email protected] without password, just use [email protected]*[email protected] and give the admin account password. Thanks
oh. i have tried clicking the little mail button but it just takes to login page. i havent been able to find settings for it. i even posted on here a while back about it. could you possibly shed light on this please? thanks
ok, is there any way to implement currently documented? if not, where would i likely start if you have any possible input? thanks.
An autologin will probably require it that you save passwords as cleartext, but ispconfig stores passwords hashed for security reasons. The scripts in this thread above are no autologin scripts, the actually just pass the email username, the password needs still be entered.
don't forget, if u implement it for your panel: - a reseller or a project admin might be able to change the password of any account he owns and may hand out one to his worker - a worker can change his password - do you want to allow reseller / pa to see or use the changed password?