X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=class%2Fmime%2FAddressStructure.class.php;h=26f782a0e01ce4cde65dc118ee6cb22f27645c29;hp=b3201e235be867fd058e9a1f9e6e321fece26532;hb=8a6b8e1f25781423b7788700c5dd1e7998e0ad1f;hpb=8d8da447778a43b78bc95f9601b385416ad84477 diff --git a/class/mime/AddressStructure.class.php b/class/mime/AddressStructure.class.php index b3201e23..26f782a0 100644 --- a/class/mime/AddressStructure.class.php +++ b/class/mime/AddressStructure.class.php @@ -3,26 +3,56 @@ /** * AddressStructure.class.php * - * Copyright (c) 2003-2004 The SquirrelMail Project Team - * Licensed under the GNU GPL. For full terms see the file COPYING. - * - * This contains functions needed to handle mime messages. + * This file contains functions needed to extract email address headers from + * mime messages. * + * @copyright © 2003-2009 The SquirrelMail Project Team + * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package squirrelmail + * @subpackage mime + * @since 1.3.2 */ /** - * Undocumented class + * Class used to work with email address headers * @package squirrelmail + * @subpackage mime + * @since 1.3.2 */ class AddressStructure { - var $personal = '', - $adl = '', - $mailbox = '', - $host = '', - $group = ''; + /** + * Personal information + * @var string + */ + var $personal = ''; + /** + * @todo check use of this variable. var is not used in class. + * @var string + */ + var $adl = ''; + /** + * Mailbox name. + * @var string + */ + var $mailbox = ''; + /** + * Server address. + * @var string + */ + var $host = ''; + /** + * @todo check use of this variable. var is not used in class. + * @var string + */ + var $group = ''; + /** + * Return address information from mime headers. + * @param boolean $full return full address (true) or only personal if it exists, otherwise email (false) + * @param boolean $encoded (since 1.4.0) return rfc2047 encoded address (true) or plain text (false). + * @return string + */ function getAddress($full = true, $encoded = false) { $result = ''; if (is_object($this)) { @@ -37,17 +67,17 @@ class AddressStructure { if ($encoded && !$is_encoded) { $personal_encoded = encodeHeader($personal); if ($personal !== $personal_encoded) { - $personal = $personal_encoded; + $personal = '"' . $personal_encoded . '"'; } else { - $personal = '"'.$this->personal.'"'; + $personal = '"' . $this->personal . '"'; } } else { if (!$is_encoded) { - $personal = '"'.$this->personal.'"'; + $personal = '"' . $this->personal . '"'; } } $addr = ($email ? $personal . ' <' .$email.'>' - : $this->personal); + : $this->personal); $best_dpl = $this->personal; } else { $addr = $email; @@ -57,10 +87,27 @@ class AddressStructure { } return $result; } - + + /** + * Shorter version of getAddress() function + * Returns full encoded address. + * @return string + * @since 1.4.0 + */ function getEncodedAddress() { return $this->getAddress(true, true); } + + /** + * Return just the email portion of this address + * @return string + * @since 1.5.2 + */ + function getEmail () { + $r = ''; + if (is_object($this)) { + $r = $this->host ? $this->mailbox.'@'.$this->host : $this->mailbox; + } + return $r; + } } - -?> \ No newline at end of file