Hallo Roundcube developers.
We are runnig ISPConfig hosting with dedicated mailserver.
Here is small patch to login if web's A and MX is different.
Please include it in new release.
Thanks Vitex
diff -Naur /roundcubemail-0.8.4/config/main.inc.php.dist
./config/main.inc.php.dist
--- /roundcubemail-0.8.4/config/main.inc.php.dist 2012-11-14
21:30:27.000000000 +0100
+++ ./config/main.inc.php.dist 2012-12-20 19:35:21.000000000 +0100
@@ -71,6 +71,7 @@
// %n - http hostname ($_SERVER['SERVER_NAME'])
// %d - domain (http hostname without the first part)
// %s - domain name after the '@' from e-mail address provided at
login screen
+// %x - MX for domain name after the '@' from e-mail address provided
at login screen
// For example %n = mail.domain.tld, %d = domain.tld
$rcmail_config['default_host'] = '';
diff -Naur /roundcubemail-0.8.4/program/include/main.inc
./program/include/main.inc
--- /roundcubemail-0.8.4/program/include/main.inc 2012-11-14
21:30:28.000000000 +0100
+++ ./program/include/main.inc 2012-12-20 19:27:50.000000000 +0100
@@ -1684,7 +1684,14 @@
return false;
}
- $name = str_replace(array('%n', '%d', '%h', '%z', '%s'), array($n,
$d, $h, $z, $s[2]), $name);
+ if ( strpos($name, '%x') !== false ){
+ $user_email = rcube_idn_convert(get_input_value('_user',
RCUBE_INPUT_POST), true);
+ if ( preg_match('/(.*)@([a-z0-9\.\-\[\]\:]+)/i', $user_email, $s)
< 1 || filter_var($s[1]."@".$s[2], FILTER_VALIDATE_EMAIL) === false )
+ return false;
+ getmxrr ( $s[2] , $mx );
+ }
+
+ $name = str_replace(array('%n', '%d', '%h', '%z', '%s','%x'),
array($n, $d, $h, $z, $s[2],$mx), $name);
return $name;
}