From b04c51fafbc9dd688e17370626139a93d17abe77 Mon Sep 17 00:00:00 2001 From: vbenincasa Date: Wed, 27 Apr 2011 08:38:21 +0000 Subject: - Added the %s variable in 'default_host' and 'smtp_server' option (%s variable is the domain name after the '@' from e-mail address provided at login screen). The %s just returns a value if the provided e-mail is valid to avoid unnecessary lookups and reduce the possibility of connections to undesirable hosts. - Small fix to the code comment of rcube_parse_host() --- config/main.inc.php.dist | 2 ++ program/include/main.inc | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist index 6f92c6ee5..d74c82dc9 100644 --- a/config/main.inc.php.dist +++ b/config/main.inc.php.dist @@ -64,6 +64,7 @@ $rcmail_config['smtp_debug'] = false; // Supported replacement variables: // %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 // For example %n = mail.domain.tld, %d = domain.tld $rcmail_config['default_host'] = ''; @@ -119,6 +120,7 @@ $rcmail_config['imap_auth_pw'] = null; // %h - user's IMAP hostname // %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 // %z - IMAP domain (IMAP hostname without the first part) // For example %n = mail.domain.tld, %d = domain.tld $rcmail_config['smtp_server'] = ''; diff --git a/program/include/main.inc b/program/include/main.inc index d7009c014..0c83af26b 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -1673,14 +1673,17 @@ function rcube_parse_host($name, $host='') { // %n - host $n = preg_replace('/:\d+$/', '', $_SERVER['SERVER_NAME']); - // %d - domain name without first part, e.g. %d=mail.domain.tld, %m=domain.tld + // %d - domain name without first part, e.g. %n=mail.domain.tld, %d=domain.tld $d = preg_replace('/^[^\.]+\./', '', $n); // %h - IMAP host $h = $_SESSION['imap_host'] ? $_SESSION['imap_host'] : $host; // %z - IMAP domain without first part, e.g. %h=imap.domain.tld, %z=domain.tld $z = preg_replace('/^[^\.]+\./', '', $h); + // %s - domain name after the '@' from e-mail address provided at login screen + if ( filter_var(get_input_value('_user', RCUBE_INPUT_POST), FILTER_VALIDATE_EMAIL) !== FALSE ) + preg_match('/[^@]+$/', get_input_value('_user', RCUBE_INPUT_POST), $s); - $name = str_replace(array('%n', '%d', '%h', '%z'), array($n, $d, $h, $z), $name); + $name = str_replace(array('%n', '%d', '%h', '%z', '%s'), array($n, $d, $h, $z, $s[0]), $name); return $name; } -- cgit v1.2.3