<?php
+
/**
* rfc822address.php
*
- * Copyright (c) 2004 The SquirrelMail Project Team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
* Contains rfc822 email address function parsing functions.
*
- *
+ * @copyright 2004-2015 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
*/
-if (!defined('SQM_ADDR_PERSONAL')) define('SQM_ADDR_PERSONAL', 0);
-if (!defined('SQM_ADDR_ADLL')) define('SQM_ADDR_ADL', 1);
-if (!defined('SQM_ADDR_MAILBOX')) define('SQM_ADDR_MAILBOX', 2);
-if (!defined('SQM_ADDR_HOST')) define('SQM_ADDR_HOST', 3);
/**
* parseRFC822Address: function for parsing RFC822 email address strings and store
* them in an address array
*
- * @param string $address The email address string to parse
- * @param array $aProps associative array with properties
+ * @param string $address The email address string to parse
+ * @param integer $iLimit stop on $iLimit parsed addresses
* @public
* @author Marc Groot Koerkamp
*
**/
-
-function parseRFC822Address($sAddress,$aProps) {
-// $aPropsDefault = array (
-// 'domain' => '', //
-// 'limit' => 0, // limits returned addresses
-// 'abooklookup' => false); // callback function for addressbook lookup
-//
-// $aProps = is_array($aProps) ? array_merge($aPropsDefault,$aProps) : $aPropsDefault;
-
-// $cbLookup = $aProps['abooklookup'];
-// $sDomain = $aProps['domain'];
- $iLimit = $aProps['limit'];
+function parseRFC822Address($sAddress,$iLimit = 0) {
$aTokens = _getAddressTokens($sAddress);
$sPersonal = $sEmail = $sComment = $sGroup = '';
case ';':
if ($sGroup) {
$aAddress[] = _createAddressElement($aStack,$aComment,$sEmail);
- $oAddr = end($aAddress);
- if(!$oAddr || ((isset($oAddr)) && !$oAddr->mailbox && !$oAddr->personal)) {
+ $aAddr = end($aAddress);
+ if(!$aAddr || ((isset($aAddr)) && !$aAddr[SQM_ADDR_MAILBOX] && !$aAddr[SQM_ADDR_PERSONAL])) {
$sEmail = $sGroup . ':;';
}
$aAddress[] = _createAddressElement($aStack,$aComment,$sEmail);
return $aAddress;
}
+
/**
* Do the address array to string translation
*
**/
function getAddressString($aAddressList,$aProps) {
$aPropsDefault = array (
- 'separator' => ',', // address separator
+ 'separator' => ', ', // address separator
'limit' => 0, // limits returned addresses
'personal' => true, // show persnal part
'email' => true, // show email part
$aNewAddressList[] = $s;
}
}
- return explode($aProps['seperator'],$aNewAddressList);
+ return implode($aProps['separator'],$aNewAddressList);
}
* @return string
* @public
* @see parseRFC822Address
- * $see Rfc822Header
+ * @see Rfc822Header
* @author Marc Groot Koerkamp
*
**/
function _getAddressTokens($address) {
$aTokens = array();
- $aAddress = array();
$aSpecials = array('(' ,'<' ,',' ,';' ,':');
$aReplace = array(' (',' <',' ,',' ;',' :');
$address = str_replace($aSpecials,$aReplace,$address);
}
return $aTokens;
}
-?>
\ No newline at end of file