LDAPAccountManager/lam/lib/3rdParty/composer/pear-pear.horde.org/Horde_Mail/Horde/Mail/Rfc822/Object.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);
}