From 6622c7e0cf09e7daaa20dbc7f1449f1f559e5a4d Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Mon, 13 Aug 2012 16:01:30 -0400
Subject: [PATCH] Skip IDN conversion when saving/reading identies. This should provide proper support for multiple recipeint values including name blocks in bcc and reply-to fields

---
 program/steps/settings/save_identity.inc |   15 +++------------
 1 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/program/steps/settings/save_identity.inc b/program/steps/settings/save_identity.inc
index 59a943b..c488196 100644
--- a/program/steps/settings/save_identity.inc
+++ b/program/steps/settings/save_identity.inc
@@ -61,8 +61,8 @@
 // Validate e-mail addresses
 $email_checks = array(rcube_idn_to_ascii($save_data['email']));
 foreach (array('reply-to', 'bcc') as $item) {
-  foreach (rcube_mime::decode_address_list(rcube_idn_to_ascii($save_data[$item]), null, false) as $rcpt)
-    $email_checks[] = $rcpt['mailto'];
+  foreach (rcube_mime::decode_address_list($save_data[$item], null, false) as $rcpt)
+    $email_checks[] = rcube_idn_to_ascii($rcpt['mailto']);
 }
 
 foreach ($email_checks as $email) {
@@ -83,11 +83,6 @@
 
   if ($save_data['email'])
     $save_data['email'] = rcube_idn_to_ascii($save_data['email']);
-  if ($save_data['bcc'])
-    $save_data['bcc'] = rcube_idn_to_ascii($save_data['bcc']);
-  if ($save_data['reply-to'])
-    $save_data['reply-to'] = rcube_idn_to_ascii($save_data['reply-to']);
-
   if (!$plugin['abort'])
     $updated = $RCMAIL->user->update_identity($iid, $save_data);
   else
@@ -122,11 +117,7 @@
   $save_data = $plugin['record'];
 
   if ($save_data['email'])
-    $save_data['email']    = rcube_idn_to_ascii($save_data['email']);
-  if ($save_data['bcc'])
-    $save_data['bcc']      = rcube_idn_to_ascii($save_data['bcc']);
-  if ($save_data['reply-to'])
-    $save_data['reply-to'] = rcube_idn_to_ascii($save_data['reply-to']);
+    $save_data['email'] = rcube_idn_to_ascii($save_data['email']);
 
   if (!$plugin['abort'])
     $insert_id = $save_data['email'] ? $RCMAIL->user->insert_identity($save_data) : null;

--
Gitblit v1.9.1