diff --git a/include/class.mailparse.php b/include/class.mailparse.php index 17da5f5901118c65453abafe80782c578a0db7a7..7a74d053f8ec2c32d53c53e340b3f74287ad3a77 100644 --- a/include/class.mailparse.php +++ b/include/class.mailparse.php @@ -397,12 +397,17 @@ class Mail_Parse { function parseAddressList($address){ if (!$address) - return false; + return array(); + // Delivered-To may appear more than once in the email headers if (is_array($address)) $address = implode(', ', $address); - return Mail_RFC822::parseAddressList($address, null, null,false); + $parsed = Mail_RFC822::parseAddressList($address, null, null,false); + + if(PEAR::isError($parsed)) + return array(); + return $parsed; } function parse($rawemail) { @@ -437,7 +442,7 @@ class EmailDataParser { $data =array(); //FROM address: who sent the email. - if(($fromlist = $parser->getFromAddressList()) && !PEAR::isError($fromlist)) { + if(($fromlist = $parser->getFromAddressList())) { $from=$fromlist[0]; //Default. foreach($fromlist as $fromobj) { if(!Validator::is_email($fromobj->mailbox.'@'.$fromobj->host)) continue; @@ -493,7 +498,7 @@ class EmailDataParser { $data['priorityId'] = $parser->getPriority(); $data['emailId'] = $emailId; - if (($replyto = $parser->getReplyTo()) && !PEAR::isError($replyto)) { + if (($replyto = $parser->getReplyTo())) { $replyto = $replyto[0]; $data['reply-to'] = $replyto->mailbox.'@'.$replyto->host; if ($replyto->personal)