From a192257ed136ace67ac80a61d939f3e59942a92d Mon Sep 17 00:00:00 2001 From: alec Date: Wed, 29 Sep 2010 12:36:53 +0000 Subject: - Add Internationalized Domain Name (IDNA) support (#1483894) git-svn-id: https://svn.roundcube.net/trunk@4010 208e9e7b-5314-0410-a742-e7e81cd9613c --- plugins/managesieve/managesieve.php | 2 ++ plugins/new_user_dialog/new_user_dialog.php | 4 +++- plugins/new_user_identity/new_user_identity.php | 2 +- plugins/virtuser_file/virtuser_file.php | 2 +- plugins/virtuser_query/virtuser_query.php | 6 +++--- 5 files changed, 10 insertions(+), 6 deletions(-) (limited to 'plugins') diff --git a/plugins/managesieve/managesieve.php b/plugins/managesieve/managesieve.php index 4705d54db..81e6eb7f9 100644 --- a/plugins/managesieve/managesieve.php +++ b/plugins/managesieve/managesieve.php @@ -65,6 +65,8 @@ class managesieve extends rcube_plugin $host = rcube_parse_host($this->rc->config->get('managesieve_host', 'localhost')); $port = $this->rc->config->get('managesieve_port', 2000); + $host = idn_to_ascii($host); + // try to connect to managesieve server and to fetch the script $this->sieve = new rcube_sieve($_SESSION['username'], $this->rc->decrypt($_SESSION['password']), $host, $port, diff --git a/plugins/new_user_dialog/new_user_dialog.php b/plugins/new_user_dialog/new_user_dialog.php index 5bf8f8497..9b773be65 100644 --- a/plugins/new_user_dialog/new_user_dialog.php +++ b/plugins/new_user_dialog/new_user_dialog.php @@ -62,7 +62,7 @@ class new_user_dialog extends rcube_plugin $table->add(null, html::tag('input', array( 'type' => 'text', 'name' => '_email', - 'value' => $identity['email'], + 'value' => idn_to_utf8($identity['email']), 'disabled' => ($identities_level == 1 || $identities_level == 3) ))); @@ -111,6 +111,8 @@ class new_user_dialog extends rcube_plugin // don't let the user alter the e-mail address if disabled by config if ($identities_level == 1 || $identities_level == 3) $save_data['email'] = $identity['email']; + else + $save_data['email'] = idn_to_ascii($save_data['email']); // save data if not empty if (!empty($save_data['name']) && !empty($save_data['email'])) { diff --git a/plugins/new_user_identity/new_user_identity.php b/plugins/new_user_identity/new_user_identity.php index 79b01cf9d..ecdf7c137 100644 --- a/plugins/new_user_identity/new_user_identity.php +++ b/plugins/new_user_identity/new_user_identity.php @@ -40,7 +40,7 @@ class new_user_identity extends rcube_plugin if (count($results->records) == 1) { $args['user_name'] = $results->records[0]['name']; if (!$args['user_email'] && strpos($results->records[0]['email'], '@')) { - $args['user_email'] = $results->records[0]['email']; + $args['user_email'] = idn_to_ascii($results->records[0]['email']); } } } diff --git a/plugins/virtuser_file/virtuser_file.php b/plugins/virtuser_file/virtuser_file.php index bb5ccb756..d91e532a9 100644 --- a/plugins/virtuser_file/virtuser_file.php +++ b/plugins/virtuser_file/virtuser_file.php @@ -40,7 +40,7 @@ class virtuser_file extends rcube_plugin $arr = preg_split('/\s+/', $r[$i]); if (count($arr) > 0 && strpos($arr[0], '@')) { - $result[] = trim(str_replace('\\@', '@', $arr[0])); + $result[] = idn_to_ascii(trim(str_replace('\\@', '@', $arr[0]))); if ($p['first']) { $p['email'] = $result[0]; diff --git a/plugins/virtuser_query/virtuser_query.php b/plugins/virtuser_query/virtuser_query.php index 6b025d0ea..2ec24d50e 100644 --- a/plugins/virtuser_query/virtuser_query.php +++ b/plugins/virtuser_query/virtuser_query.php @@ -44,11 +44,11 @@ class virtuser_query extends rcube_plugin if (strpos($sql_arr[0], '@')) { if ($p['extended'] && count($sql_arr) > 1) { $result[] = array( - 'email' => $sql_arr[0], + 'email' => idn_to_ascii($sql_arr[0]), 'name' => $sql_arr[1], 'organization' => $sql_arr[2], - 'reply-to' => $sql_arr[3], - 'bcc' => $sql_arr[4], + 'reply-to' => idn_to_ascii($sql_arr[3]), + 'bcc' => idn_to_ascii($sql_arr[4]), 'signature' => $sql_arr[5], 'html_signature' => (int)$sql_arr[6], ); -- cgit v1.2.3