From cdafbbc51dc398e1c33e54ef817ad18d0d02d8e1 Mon Sep 17 00:00:00 2001 From: stekkel Date: Fri, 7 Mar 2003 22:12:51 +0000 Subject: [PATCH] address parsing with encoded personal names git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@4614 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- class/mime/AddressStructure.class.php | 2 +- class/mime/Rfc822Header.class.php | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/class/mime/AddressStructure.class.php b/class/mime/AddressStructure.class.php index 85939f9a..91e04e27 100644 --- a/class/mime/AddressStructure.class.php +++ b/class/mime/AddressStructure.class.php @@ -25,7 +25,7 @@ class AddressStructure { : $this->mailbox); $personal = trim($this->personal); $is_encoded = false; - if (preg_match('/^(=\?([^?]*)\?(Q|B)\?([^?]*)\?=)(.*)/Ui',$personal,$reg)) { + if (preg_match('/(=\?([^?]*)\?(Q|B)\?([^?]*)\?=)(.*)/Ui',$personal,$reg)) { $is_encoded = true; } if ($personal) { diff --git a/class/mime/Rfc822Header.class.php b/class/mime/Rfc822Header.class.php index 7b375216..1f18f2bd 100644 --- a/class/mime/Rfc822Header.class.php +++ b/class/mime/Rfc822Header.class.php @@ -260,8 +260,9 @@ class Rfc822Header { if (preg_match('/^(=\?([^?]*)\?(Q|B)\?([^?]*)\?=)(.*)/Ui',substr($address,$pos),$reg)) { $name .= $reg[1]; $pos += strlen($reg[1]); + } else { + ++$pos; } - ++$pos; $addr_start = $pos; $is_encoded = true; break; @@ -460,7 +461,11 @@ class Rfc822Header { } else if ($name == '') { $name = trim(substr($address, 0, $addr_start)); } - if (!$name && $comment) $name = $comment; + if (!$name && $comment) { + $name = $comment; + } else if ($name && $comment) { + $name = $name .' ('.$comment.')'; + } $at = strpos($addr, '@'); $addr_structure = new AddressStructure(); $addr_structure->group = $group; -- 2.25.1