From b8b6e5011a0f87f137870fbf328bcdb8ff3bbbfa Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Mon, 13 Aug 2012 21:59:54 +0200 Subject: 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/edit_identity.inc | 4 +--- program/steps/settings/save_identity.inc | 15 +++------------ 2 files changed, 4 insertions(+), 15 deletions(-) (limited to 'program/steps/settings') diff --git a/program/steps/settings/edit_identity.inc b/program/steps/settings/edit_identity.inc index ebc2c1b20..aa1aeea5d 100644 --- a/program/steps/settings/edit_identity.inc +++ b/program/steps/settings/edit_identity.inc @@ -97,9 +97,7 @@ function rcube_identity_form($attrib) $form['addressing']['content']['email']['class'] = 'disabled'; } - $IDENTITY_RECORD['email'] = rcube_idn_to_utf8($IDENTITY_RECORD['email']); - $IDENTITY_RECORD['reply-to'] = rcube_idn_to_utf8($IDENTITY_RECORD['reply-to']); - $IDENTITY_RECORD['bcc'] = rcube_idn_to_utf8($IDENTITY_RECORD['bcc']); + $IDENTITY_RECORD['email'] = rcube_idn_to_utf8($IDENTITY_RECORD['email']); // Allow plugins to modify identity form content $plugin = $RCMAIL->plugins->exec_hook('identity_form', array( diff --git a/program/steps/settings/save_identity.inc b/program/steps/settings/save_identity.inc index dba143dd8..8515c44f1 100644 --- a/program/steps/settings/save_identity.inc +++ b/program/steps/settings/save_identity.inc @@ -58,8 +58,8 @@ if (IDENTITIES_LEVEL == 1 || IDENTITIES_LEVEL == 3) // 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) { @@ -80,11 +80,6 @@ if ($_POST['_iid']) 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 @@ -119,11 +114,7 @@ else if (IDENTITIES_LEVEL < 2) $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; -- cgit v1.2.3