Viewing file: AddressStructure.class.php (3.58 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/** * AddressStructure.class.php * * This file contains functions needed to extract email address headers from * mime messages. * * @copyright 2003-2010 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id: AddressStructure.class.php 13952 2010-06-21 07:52:41Z pdontthink $ * @package squirrelmail * @subpackage mime * @since 1.3.2 */
/** * Class used to work with email address headers * @package squirrelmail * @subpackage mime * @since 1.3.2 */ class AddressStructure { /** * 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). * @param boolean $unconditionally_quote (since 1.4.21/1.5.2) when TRUE, always quote the personal part, whether or not it is encoded, otherwise quoting is only added if the personal part is not encoded * @return string */ function getAddress($full = true, $encoded = false, $unconditionally_quote = FALSE) { $result = ''; if (is_object($this)) { $email = ($this->host ? $this->mailbox.'@'.$this->host : $this->mailbox); $personal = trim($this->personal); $is_encoded = false; // FIXME: I don't think the U modifier below does anything at all if (preg_match('/(=\?([^?]*)\?(Q|B)\?([^?]*)\?=)(.*)/Ui',$personal,$reg)) { $is_encoded = true; } if ($personal) { if ($encoded && !$is_encoded) { $personal_encoded = encodeHeader('"' . $personal . '"'); if ($personal !== $personal_encoded) { $personal = $personal_encoded; } else { //FIXME: this probably adds quotes around an encoded string which itself is already quoted $personal = '"'.$this->personal.'"'; } } else { if (!$is_encoded || $unconditionally_quote) { $personal = '"'.$this->personal.'"'; } } $addr = ($email ? $personal . ' <' .$email.'>' : $this->personal); $best_dpl = $this->personal; } else { $addr = $email; $best_dpl = $email; } $result = ($full ? $addr : $best_dpl); } return $result; }
/** * Shorter version of getAddress() function * Returns full encoded address. * @param boolean $unconditionally_quote (since 1.4.21) when TRUE, always quote the personal part, whether or not it is encoded, otherwise quoting is only added if the personal part is not encoded * @return string * @since 1.4.0 */ function getEncodedAddress($unconditionally_quote=FALSE) { return $this->getAddress(true, true, $unconditionally_quote); } }
|