91 lines
2.6 KiB
PHP
91 lines
2.6 KiB
PHP
<?php
|
|
/**
|
|
* Copyright 2012-2017 Horde LLC (http://www.horde.org/)
|
|
*
|
|
* See the enclosed file COPYING for license information (BSD). If you
|
|
* did not receive this file, see http://www.horde.org/licenses/bsd.
|
|
*
|
|
* @category Horde
|
|
* @copyright 2012-2017 Horde LLC
|
|
* @license http://www.horde.org/licenses/bsd New BSD License
|
|
* @package Mail
|
|
*/
|
|
|
|
/**
|
|
* Object representation of an RFC 822 element.
|
|
*
|
|
* @author Michael Slusarz <slusarz@horde.org>
|
|
* @category Horde
|
|
* @copyright 2012-2017 Horde LLC
|
|
* @license http://www.horde.org/licenses/bsd New BSD License
|
|
* @package Mail
|
|
*/
|
|
abstract class Horde_Mail_Rfc822_Object
|
|
{
|
|
/**
|
|
* String representation of object.
|
|
*
|
|
* @return string Returns the full e-mail address.
|
|
*/
|
|
public function __toString()
|
|
{
|
|
return $this->writeAddress();
|
|
}
|
|
|
|
/**
|
|
* Write an address given information in this part.
|
|
*
|
|
* @param mixed $opts If boolean true, is equivalent to passing true for
|
|
* both 'encode' and 'idn'. If an array, these
|
|
* keys are supported:
|
|
* - comment: (boolean) If true, include comment(s) in output?
|
|
* @since 2.6.0
|
|
* DEFAULT: false
|
|
* - encode: (mixed) MIME encode the personal/groupname parts?
|
|
* If boolean true, encodes in 'UTF-8'.
|
|
* If a string, encodes using this charset.
|
|
* DEFAULT: false
|
|
* - idn: (boolean) If true, encodes IDN domain names (RFC 3490).
|
|
* DEFAULT: false
|
|
* - noquote: (boolean) If true, don't quote personal part. [@since
|
|
* 2.4.0]
|
|
* DEFAULT: false
|
|
*
|
|
* @return string The correctly escaped/quoted address.
|
|
*/
|
|
public function writeAddress($opts = array())
|
|
{
|
|
if ($opts === true) {
|
|
$opts = array(
|
|
'encode' => 'UTF-8',
|
|
'idn' => true
|
|
);
|
|
} elseif (!empty($opts['encode']) && ($opts['encode'] === true)) {
|
|
$opts['encode'] = 'UTF-8';
|
|
}
|
|
|
|
return $this->_writeAddress($opts);
|
|
}
|
|
|
|
/**
|
|
* Class-specific implementation of writeAddress().
|
|
*
|
|
* @see writeAddress()
|
|
*
|
|
* @param array $opts See writeAddress().
|
|
*
|
|
* @return string The correctly escaped/quoted address.
|
|
*/
|
|
abstract protected function _writeAddress($opts);
|
|
|
|
/**
|
|
* Compare this object against other data.
|
|
*
|
|
* @param mixed $ob Address data.
|
|
*
|
|
* @return boolean True if the data reflects the same canonical address.
|
|
*/
|
|
abstract public function match($ob);
|
|
|
|
}
|