Thomas Bruederli
2012-08-13 6622c7e0cf09e7daaa20dbc7f1449f1f559e5a4d
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
2 files modified
19 ■■■■ changed files
program/steps/settings/edit_identity.inc 4 ●●● patch | view | raw | blame | history
program/steps/settings/save_identity.inc 15 ●●●● patch | view | raw | blame | history
program/steps/settings/edit_identity.inc
@@ -99,9 +99,7 @@
    $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(
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;