From: Michael M Slusarz Date: Wed, 14 Jul 2010 05:09:28 +0000 (-0600) Subject: Charset now required for a bunch of MIME functions. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=8895b50e360862005e345c93e205cebbfd24bbab;p=horde.git Charset now required for a bunch of MIME functions. Better goal would be to convert Horde_Mime_Address to OO-interface, and then inject charset. But this gets things to work again. --- diff --git a/framework/Mime/lib/Horde/Mime.php b/framework/Mime/lib/Horde/Mime.php index a49410bd7..f404728cd 100644 --- a/framework/Mime/lib/Horde/Mime.php +++ b/framework/Mime/lib/Horde/Mime.php @@ -558,7 +558,7 @@ class Horde_Mime * it was doing. */ if (empty($convert)) { foreach (array_diff(array_keys($ret['params']), array_keys($convert)) as $name) { - $ret['params'][$name] = self::decode($ret['params'][$name]); + $ret['params'][$name] = self::decode($ret['params'][$name], $charset); } } diff --git a/framework/Mime/lib/Horde/Mime/Address.php b/framework/Mime/lib/Horde/Mime/Address.php index 17c056d6c..23c046baf 100644 --- a/framework/Mime/lib/Horde/Mime/Address.php +++ b/framework/Mime/lib/Horde/Mime/Address.php @@ -163,6 +163,8 @@ class Horde_Mime_Address * @param array $ob The address object to be turned into a string. * @param array $opts Additional options: *
+     * 'charset' - (string) The local charset.
+     *             DEFAULT: NONE
      * 'filter' - (mixed) A user@example.com style bare address to ignore.
      *            Either single string or an array of strings. If the address
      *            matches $filter, an empty string will be returned.
@@ -177,9 +179,13 @@ class Horde_Mime_Address
      */
     static public function addrObject2String($ob, $opts = array())
     {
+        $opts = array_merge(array(
+            'charset' => null
+        ), $opts);
+
         /* If the personal name is set, decode it. */
         $ob['personal'] = isset($ob['personal'])
-            ? Horde_Mime::decode($ob['personal'])
+            ? Horde_Mime::decode($ob['personal'], $opts['charset'])
             : '';
 
         /* If both the mailbox and the host are empty, return an empty string.
@@ -222,6 +228,8 @@ class Horde_Mime_Address
      * @param array $addresses  The array of address objects.
      * @param array $opts       Additional options:
      * 
+     * 'charset' - (string) The local charset.
+     *             DEFAULT: NONE
      * 'filter' - (mixed) A user@example.com style bare address to ignore.
      *            Either single string or an array of strings.
      *            DEFAULT: No filter
@@ -258,6 +266,8 @@ class Horde_Mime_Address
      * @param array $obs   An array of header objects.
      * @param array $opts  Additional options:
      * 
+     * 'charset' - (string) The local charset.
+     *             DEFAULT: NONE
      * 'filter' - (mixed) A user@example.com style bare address to ignore.
      *            Either single string or an array of strings.
      *            DEFAULT: No filter
@@ -279,6 +289,10 @@ class Horde_Mime_Address
      */
     static public function getAddressesFromObject($obs, $opts = array())
     {
+        $opts = array_merge(array(
+            'charset' => null
+        ), $opts);
+
         $ret = array();
 
         if (!is_array($obs) || empty($obs)) {
@@ -288,7 +302,7 @@ class Horde_Mime_Address
         foreach ($obs as $ob) {
             if (isset($ob['groupname'])) {
                 $ret[] = array(
-                    'addresses' => self::getAddressesFromObject($ob['addresses']),
+                    'addresses' => self::getAddressesFromObject($ob['addresses'], $opts),
                     'groupname' => $ob['groupname']
                 );
                 continue;
@@ -302,7 +316,7 @@ class Horde_Mime_Address
 
             /* Ensure we're working with initialized values. */
             if (!empty($ob['personal'])) {
-                $ob['personal'] = trim(stripslashes(Horde_Mime::decode($ob['personal'])), '"');
+                $ob['personal'] = trim(stripslashes(Horde_Mime::decode($ob['personal'], $opts['charset'])), '"');
             }
 
             $inner = self::writeAddress($ob['mailbox'], $ob['host']);
diff --git a/framework/Mime/lib/Horde/Mime/Headers.php b/framework/Mime/lib/Horde/Mime/Headers.php
index 85ec9b5c2..af2595f4e 100644
--- a/framework/Mime/lib/Horde/Mime/Headers.php
+++ b/framework/Mime/lib/Horde/Mime/Headers.php
@@ -296,7 +296,7 @@ class Horde_Mime_Headers
                     $value = '';
                 }
             } else {
-                $value = Horde_Mime::decode($value);
+                $value = Horde_Mime::decode($value, null);
             }
         }
 
diff --git a/imp/compose.php b/imp/compose.php
index ada72ad66..3568f9237 100644
--- a/imp/compose.php
+++ b/imp/compose.php
@@ -216,8 +216,8 @@ case 'mailto':
         $header['to'] = $imp_headers->getValue('to');
     }
     if (empty($header['to'])) {
-        ($header['to'] = Horde_Mime_Address::addrArray2String($imp_headers->getOb('from'))) ||
-        ($header['to'] = Horde_Mime_Address::addrArray2String($imp_headers->getOb('reply-to')));
+        ($header['to'] = Horde_Mime_Address::addrArray2String($imp_headers->getOb('from'), array('charset' => $registry->getCharset()))) ||
+        ($header['to'] = Horde_Mime_Address::addrArray2String($imp_headers->getOb('reply-to'), array('charset' => $registry->getCharset())));
     }
     break;
 
@@ -638,7 +638,7 @@ if (!is_null($oldrtemode) && ($oldrtemode != $rtemode)) {
 /* If this is the first page load for this compose item, add auto BCC
  * addresses. */
 if (!$vars->compose_formToken && ($vars->actionID != 'draft')) {
-    $header['bcc'] = Horde_Mime_Address::addrArray2String($identity->getBccAddresses());
+    $header['bcc'] = Horde_Mime_Address::addrArray2String($identity->getBccAddresses(), array('charset' => $registry->getCharset()));
 }
 
 foreach (array('to', 'cc', 'bcc', 'subject') as $val) {
diff --git a/imp/config/hooks.php.dist b/imp/config/hooks.php.dist
index ba025e01a..55bd375d9 100644
--- a/imp/config/hooks.php.dist
+++ b/imp/config/hooks.php.dist
@@ -252,7 +252,7 @@ class IMP_Hooks
 //        // the same domain.
 //        $flags = array();
 //
-//        $from_ob = Horde_Mime_Address::getAddressesFromObject($data['envelope']['from']);
+//        $from_ob = Horde_Mime_Address::getAddressesFromObject($data['envelope']['from'], array('charset' => $GLOBALS['registry']->getCharset()));
 //        if (!empty($from_ob) &&
 //            (strcasecmp($from_ob[0]['host'], 'example.com') === 0)) {
 //            /* The '$indomain' flag in this example must have already been
diff --git a/imp/lib/Compose.php b/imp/lib/Compose.php
index 069329240..a3edc5d00 100644
--- a/imp/lib/Compose.php
+++ b/imp/lib/Compose.php
@@ -367,10 +367,11 @@ class IMP_Compose
             $identity_id = $identity->getMatchingIdentity($fromaddr);
         }
 
+        $charset = $GLOBALS['registry']->getCharset();
         $header = array(
-            'to' => Horde_Mime_Address::addrArray2String($headers->getOb('to')),
-            'cc' => Horde_Mime_Address::addrArray2String($headers->getOb('cc')),
-            'bcc' => Horde_Mime_Address::addrArray2String($headers->getOb('bcc')),
+            'to' => Horde_Mime_Address::addrArray2String($headers->getOb('to'), array('charset' => $charset)),
+            'cc' => Horde_Mime_Address::addrArray2String($headers->getOb('cc'), array('charset' => $charset)),
+            'bcc' => Horde_Mime_Address::addrArray2String($headers->getOb('bcc'), array('charset' => $charset)),
             'subject' => $headers->getValue('subject')
         );
 
@@ -1271,6 +1272,7 @@ class IMP_Compose
             'subject' => ''
         );
 
+        $charset = $GLOBALS['registry']->getCharset();
         $h = $contents->getHeaderOb();
         $match_identity = $this->_getMatchingIdentity($h);
         $reply_type = 'reply';
@@ -1301,10 +1303,10 @@ class IMP_Compose
         $force = false;
         if (in_array($type, array('reply', 'reply_auto', '*'))) {
             if (($header['to'] = $to) ||
-                ($header['to'] = Horde_Mime_Address::addrArray2String($h->getOb('reply-to')))) {
+                ($header['to'] = Horde_Mime_Address::addrArray2String($h->getOb('reply-to'), array('charset' => $charset)))) {
                 $force = true;
             } else {
-                $header['to'] = Horde_Mime_Address::addrArray2String($h->getOb('from'));
+                $header['to'] = Horde_Mime_Address::addrArray2String($h->getOb('from'), array('charset' => $charset));
             }
 
             if ($type == '*') {
@@ -1355,7 +1357,7 @@ class IMP_Compose
 
                 $ob = $h->getOb($val);
                 if (!empty($ob)) {
-                    $addr_obs = Horde_Mime_Address::getAddressesFromObject($ob, array('filter' => $all_addrs));
+                    $addr_obs = Horde_Mime_Address::getAddressesFromObject($ob, array('charset' => $charset, 'filter' => $all_addrs));
                     if (!empty($addr_obs)) {
                         if (isset($addr_obs[0]['groupname'])) {
                             $cc_addrs = array_merge($cc_addrs, $addr_obs);
@@ -1375,7 +1377,7 @@ class IMP_Compose
                                 if (!$addr_obs[0]['personal'] &&
                                     ($to_ob = $h->getOb('from')) &&
                                     $to_ob[0]['personal'] &&
-                                    ($to_addr = Horde_Mime_Address::addrArray2String($to_ob)) &&
+                                    ($to_addr = Horde_Mime_Address::addrArray2String($to_ob, array('charset' => $charset))) &&
                                     Horde_Mime_Address::bareAddress($to_addr) == $addr_obs[0]['address']) {
                                     $header['to'] = $to_addr;
                                 } else {
@@ -1412,7 +1414,7 @@ class IMP_Compose
             $header[empty($header['to']) ? 'to' : 'cc'] = rtrim(implode('', $hdr_cc), ' ,');
 
             /* Build the Bcc: header. */
-            $header['bcc'] = Horde_Mime_Address::addrArray2String($h->getOb('bcc') + $identity->getBccAddresses(), array('filter' => $all_addrs));
+            $header['bcc'] = Horde_Mime_Address::addrArray2String($h->getOb('bcc') + $identity->getBccAddresses(), array('charset' => $charset, 'filter' => $all_addrs));
             if ($type == '*') {
                 $all_headers['reply_all'] = $header;
             }
@@ -1438,7 +1440,7 @@ class IMP_Compose
             );
         }
 
-        $from = Horde_Mime_Address::addrArray2String($h->getOb('from'));
+        $from = Horde_Mime_Address::addrArray2String($h->getOb('from'), array('charset' => $charset));
 
         if ($prefs->getValue('reply_headers') && !empty($h)) {
             $msg_pre = '----- ' .
@@ -1550,7 +1552,7 @@ class IMP_Compose
         }
 
         if (in_array($type, array('forward_body', 'forward_both'))) {
-            $from = Horde_Mime_Address::addrArray2String($h->getOb('from'));
+            $from = Horde_Mime_Address::addrArray2String($h->getOb('from'), array('charset' => $GLOBALS['registry']->getCharset()));
 
             $msg_pre = "\n----- " .
                 ($from ? sprintf(_("Forwarded message from %s"), $from) : _("Forwarded message")) .
@@ -1725,17 +1727,18 @@ class IMP_Compose
      */
     protected function _getMsgHeaders($h)
     {
+        $charset = $GLOBALS['registry']->getCharset();
         $tmp = array();
 
         if (($ob = $h->getValue('date'))) {
             $tmp[_("Date")] = $ob;
         }
 
-        if (($ob = Horde_Mime_Address::addrArray2String($h->getOb('from')))) {
+        if (($ob = Horde_Mime_Address::addrArray2String($h->getOb('from'), array('charset' => $charset)))) {
             $tmp[_("From")] = $ob;
         }
 
-        if (($ob = Horde_Mime_Address::addrArray2String($h->getOb('reply-to')))) {
+        if (($ob = Horde_Mime_Address::addrArray2String($h->getOb('reply-to'), array('charset' => $charset)))) {
             $tmp[_("Reply-To")] = $ob;
         }
 
@@ -1743,11 +1746,11 @@ class IMP_Compose
             $tmp[_("Subject")] = $ob;
         }
 
-        if (($ob = Horde_Mime_Address::addrArray2String($h->getOb('to')))) {
+        if (($ob = Horde_Mime_Address::addrArray2String($h->getOb('to'), array('charset' => $charset)))) {
             $tmp[_("To")] = $ob;
         }
 
-        if (($ob = Horde_Mime_Address::addrArray2String($h->getOb('cc')))) {
+        if (($ob = Horde_Mime_Address::addrArray2String($h->getOb('cc'), array('charset' => $charset)))) {
             $tmp[_("Cc")] = $ob;
         }
 
diff --git a/imp/lib/Imap/Flags.php b/imp/lib/Imap/Flags.php
index 5386d635c..e7a81e9b7 100644
--- a/imp/lib/Imap/Flags.php
+++ b/imp/lib/Imap/Flags.php
@@ -270,7 +270,7 @@ class IMP_Imap_Flags
      * 'personal' - (mixed) Personal message info. Either an array of to
      *              addresses as returned by
      *              Horde_Mime_Address::getAddressesFromObject(), or the
-     *              identity that matched the address list..
+     *              identity that matched the address list.
      * 'priority' - (Horde_Mime_Headers) Determines priority information from
      *              a headers object.
      * 
diff --git a/imp/lib/Ui/Compose.php b/imp/lib/Ui/Compose.php index 5a81fb0f6..e10726706 100644 --- a/imp/lib/Ui/Compose.php +++ b/imp/lib/Ui/Compose.php @@ -298,7 +298,7 @@ class IMP_Ui_Compose // Sent mail display name 'smf_display' => IMP::displayFolder($identity->getValue('sent_mail_folder', $ident)), // Bcc addresses to add - 'bcc' => Horde_Mime_Address::addrArray2String($identity->getBccAddresses($ident)) + 'bcc' => Horde_Mime_Address::addrArray2String($identity->getBccAddresses($ident), array('charset' => $GLOBALS['registry']->getCharset())) ); } diff --git a/imp/lib/Ui/Mailbox.php b/imp/lib/Ui/Mailbox.php index 4a8edf22d..09b56003e 100644 --- a/imp/lib/Ui/Mailbox.php +++ b/imp/lib/Ui/Mailbox.php @@ -73,7 +73,7 @@ class IMP_Ui_Mailbox $this->_cache['drafts_sm_folder'] = IMP::isSpecialFolder($this->_mailbox); } - $from = Horde_Mime_Address::getAddressesFromObject($ob['from']); + $from = Horde_Mime_Address::getAddressesFromObject($ob['from'], array('charset' => $GLOBALS['registry']->getCharset())); $from = reset($from); if (empty($from)) { @@ -87,7 +87,7 @@ class IMP_Ui_Mailbox $ret['from'] = _("Undisclosed Recipients"); $ret['error'] = true; } else { - $to = Horde_Mime_Address::getAddressesFromObject($ob['to']); + $to = Horde_Mime_Address::getAddressesFromObject($ob['to'], array('charset' => $GLOBALS['registry']->getCharset())); $first_to = reset($to); if (empty($first_to)) { $ret['from'] = _("Undisclosed Recipients"); diff --git a/imp/lib/Ui/Message.php b/imp/lib/Ui/Message.php index c726cff31..a77f7132f 100644 --- a/imp/lib/Ui/Message.php +++ b/imp/lib/Ui/Message.php @@ -325,7 +325,7 @@ class IMP_Ui_Message } catch (Horde_Exception $e) {} } - foreach (Horde_Mime_Address::getAddressesFromObject($addrlist) as $ob) { + foreach (Horde_Mime_Address::getAddressesFromObject($addrlist, array('charset' => $registry->getCharset())) as $ob) { if (isset($ob['groupname'])) { $group_array = array(); foreach ($ob['addresses'] as $ad) { diff --git a/imp/lib/Views/ListMessages.php b/imp/lib/Views/ListMessages.php index 295f1fedb..18808fc49 100644 --- a/imp/lib/Views/ListMessages.php +++ b/imp/lib/Views/ListMessages.php @@ -392,7 +392,7 @@ class IMP_Views_ListMessages $flag_parse = $GLOBALS['injector']->getInstance('IMP_Imap_Flags')->parse(array( 'atc' => isset($ob['structure']) ? $ob['structure'] : null, 'flags' => $ob['flags'], - 'personal' => Horde_Mime_Address::getAddressesFromObject($ob['envelope']['to']), + 'personal' => Horde_Mime_Address::getAddressesFromObject($ob['envelope']['to'], array('charset' => $charset)), 'priority' => $ob['headers'] )); diff --git a/imp/lib/Views/ShowMessage.php b/imp/lib/Views/ShowMessage.php index cb2655c80..be1574453 100644 --- a/imp/lib/Views/ShowMessage.php +++ b/imp/lib/Views/ShowMessage.php @@ -30,7 +30,7 @@ class IMP_Views_ShowMessage $addr_array = array(); - foreach (Horde_Mime_Address::getAddressesFromObject($addrlist) as $ob) { + foreach (Horde_Mime_Address::getAddressesFromObject($addrlist, array('charset' => $GLOBALS['registry']->getCharset())) as $ob) { if (!empty($ob['inner'])) { try { $tmp = array('raw' => Horde::callHook('dimp_addressformatting', array($ob), 'imp')); diff --git a/imp/mailbox-mimp.php b/imp/mailbox-mimp.php index bcafdc372..2e72dd176 100644 --- a/imp/mailbox-mimp.php +++ b/imp/mailbox-mimp.php @@ -180,7 +180,7 @@ while (list(,$ob) = each($mbox_info['overview'])) { /* Get flag information. */ $flag_parse = $injector->getInstance('IMP_Imap_Flags')->parse(array( 'flags' => $ob['flags'], - 'personal' => Horde_Mime_Address::getAddressesFromObject($ob['envelope']['to']), + 'personal' => Horde_Mime_Address::getAddressesFromObject($ob['envelope']['to'], array('charset' => $registry->getCharset())), 'priority' => $ob['headers'] )); diff --git a/imp/mailbox.php b/imp/mailbox.php index cdc4336c9..e40f564d5 100644 --- a/imp/mailbox.php +++ b/imp/mailbox.php @@ -720,7 +720,7 @@ while (list(,$ob) = each($mbox_info['overview'])) { 'atc' => isset($ob['structure']) ? $ob['structure'] : null, 'div' => true, 'flags' => $ob['flags'], - 'personal' => Horde_Mime_Address::getAddressesFromObject($ob['envelope']['to']), + 'personal' => Horde_Mime_Address::getAddressesFromObject($ob['envelope']['to'], array('charset' => $registry->getCharset())), 'priority' => $ob['headers'] )); diff --git a/imp/message-mimp.php b/imp/message-mimp.php index a702cedf5..fe2fc8f9b 100644 --- a/imp/message-mimp.php +++ b/imp/message-mimp.php @@ -281,7 +281,7 @@ if (IMP::canCompose()) { $menu[] = array(_("Reply to List"), IMP::composeLink(array(), array('a' => 'rl') + $compose_params)); } - if (Horde_Mime_Address::addrArray2String(array_merge($envelope['to'], $envelope['cc']), array('filter' => array_keys($user_identity->getAllFromAddresses(true))))) { + if (Horde_Mime_Address::addrArray2String(array_merge($envelope['to'], $envelope['cc']), array('charset' => $registry->getCharset(), 'filter' => array_keys($user_identity->getAllFromAddresses(true))))) { $menu[] = array(_("Reply All"), IMP::composeLink(array(), array('a' => 'ra') + $compose_params)); } diff --git a/imp/message.php b/imp/message.php index c783f811f..0dc768226 100644 --- a/imp/message.php +++ b/imp/message.php @@ -305,8 +305,8 @@ case 'low': /* Build Reply-To address link. */ if (!empty($envelope['reply-to']) && - (Horde_Mime_Address::bareAddress(Horde_Mime_Address::addrObject2String(reset($envelope['from']))) != - Horde_Mime_Address::bareAddress(Horde_Mime_Address::addrObject2String(reset($envelope['reply-to'])))) && + (Horde_Mime_Address::bareAddress(Horde_Mime_Address::addrObject2String(reset($envelope['from']), array('charset' => $registry->getCharset()))) != + Horde_Mime_Address::bareAddress(Horde_Mime_Address::addrObject2String(reset($envelope['reply-to']), array('charset' => $registry->getCharset())))) && ($reply_to = $imp_ui->buildAddressLinks($envelope['reply-to'], $self_link))) { $display_headers['reply-to'] = $reply_to; } @@ -484,7 +484,7 @@ if (!$disable_compose) { $a_template->set('reply_list', Horde::widget(IMP::composeLink(array(), array('actionID' => 'reply_list') + $compose_params), _("To List"), 'widget', '', '', _("To _List"), true)); } - if (Horde_Mime_Address::addrArray2String(array_merge($envelope['to'], $envelope['cc']), array('filter' => array_keys($user_identity->getAllFromAddresses(true))))) { + if (Horde_Mime_Address::addrArray2String(array_merge($envelope['to'], $envelope['cc']), array('charset' => $registry->getCharset(), 'filter' => array_keys($user_identity->getAllFromAddresses(true))))) { $a_template->set('show_reply_all', Horde::widget(IMP::composeLink(array(), array('actionID' => 'reply_all') + $compose_params), _("To All"), 'widget', '', '', _("To _All"), true)); } diff --git a/imp/rss.php b/imp/rss.php index 1f2b68b95..7358a86c7 100644 --- a/imp/rss.php +++ b/imp/rss.php @@ -74,7 +74,7 @@ if ($ids->count()) { 'description' => isset($ob['preview']) ? $ob['preview'] : '', 'url' => Horde::applicationURL(IMP::generateIMPUrl('message.php', $mailbox, $ob['uid'], $mailbox), true, -1), 'fromAddr' => $from_addr['fullfrom'], - 'toAddr' => Horde_Mime_Address::addrArray2String(isset($ob['envelope']['to']) ? $ob['envelope']['to'] : array()) + 'toAddr' => Horde_Mime_Address::addrArray2String(isset($ob['envelope']['to']) ? $ob['envelope']['to'] : array(), array('charset' => $GLOBALS['registry']->getCharset())) )); } } diff --git a/imp/thread.php b/imp/thread.php index 2dc2736c8..8e5772731 100644 --- a/imp/thread.php +++ b/imp/thread.php @@ -111,11 +111,11 @@ foreach ($imp_indices->indices() as $mbox => $idxlist) { if (IMP::isSpecialFolder($mbox)) { $curr_msg['addr_to'] = true; $curr_msg['addr'] = _("To:") . ' ' . $imp_ui->buildAddressLinks($envelope['to'], Horde::selfUrl(true)); - $addr = _("To:") . ' ' . htmlspecialchars(Horde_Mime_Address::addrObject2String(reset($envelope['to'])), ENT_COMPAT, $charset); + $addr = _("To:") . ' ' . htmlspecialchars(Horde_Mime_Address::addrObject2String(reset($envelope['to']), array('charset' => $charset)), ENT_COMPAT, $charset); } else { $curr_msg['addr_to'] = false; $curr_msg['addr'] = $imp_ui->buildAddressLinks($envelope['from'], Horde::selfUrl(true)); - $addr = htmlspecialchars(Horde_Mime_Address::addrObject2String(reset($envelope['from'])), ENT_COMPAT, $charset); + $addr = htmlspecialchars(Horde_Mime_Address::addrObject2String(reset($envelope['from']), array('charset' => $charset)), ENT_COMPAT, $charset); } $subject_header = htmlspecialchars($envelope['subject'], ENT_COMPAT, $charset); diff --git a/ingo/lib/Script/Imap.php b/ingo/lib/Script/Imap.php index b9f80652b..34f3a4dc6 100644 --- a/ingo/lib/Script/Imap.php +++ b/ingo/lib/Script/Imap.php @@ -161,7 +161,7 @@ class Ingo_Script_Imap extends Ingo_Script * address match. */ $msgs = $this->_api->fetchEnvelope($indices); foreach ($msgs as $k => $v) { - $from_addr = Horde_Mime_Address::bareAddress(Horde_Mime_Address::addrArray2String($v['envelope']['from'])); + $from_addr = Horde_Mime_Address::bareAddress(Horde_Mime_Address::addrArray2String($v['envelope']['from'], array('charset' => $this->_params['charset']))); $found = false; foreach ($addr as $val) { if (strtolower($from_addr) == strtolower($val)) { @@ -273,7 +273,7 @@ class Ingo_Script_Imap extends Ingo_Script $GLOBALS['notification']->push( sprintf(_("Filter activity: The message \"%s\" from \"%s\" has been moved to the folder \"%s\"."), !empty($msg['envelope']['subject']) ? Horde_Mime::decode($msg['envelope']['subject'], $this->_params['charset']) : _("[No Subject]"), - !empty($msg['envelope']['from']) ? Horde_Mime::decode(Horde_Mime_Address::addrArray2String($msg['envelope']['from']), $this->_params['charset']) : _("[No Sender]"), + !empty($msg['envelope']['from']) ? Horde_Mime::decode(Horde_Mime_Address::addrArray2String($msg['envelope']['from'], $this->_params['charset']), $this->_params['charset']) : _("[No Sender]"), Horde_String::convertCharset($rule['action-value'], 'UTF7-IMAP', $this->_params['charset'])), 'horde.message'); }