PEAR Mail package updated to 1.3.0
1.3.0 (stable) was released on 2016-01-31 Source: https://pear.php.net/package/Mail
This commit is contained in:
parent
57d57b8d8f
commit
204a8f1fcc
|
@ -2,7 +2,7 @@
|
||||||
/**
|
/**
|
||||||
* PEAR's Mail:: interface.
|
* PEAR's Mail:: interface.
|
||||||
*
|
*
|
||||||
* PHP versions 4 and 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* LICENSE:
|
* LICENSE:
|
||||||
*
|
*
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
* @author Chuck Hagenbuch <chuck@horde.org>
|
* @author Chuck Hagenbuch <chuck@horde.org>
|
||||||
* @copyright 1997-2010 Chuck Hagenbuch
|
* @copyright 1997-2010 Chuck Hagenbuch
|
||||||
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
||||||
* @version CVS: $Id: Mail.php 294747 2010-02-08 08:18:33Z clockwerx $
|
* @version CVS: $Id$
|
||||||
* @link http://pear.php.net/package/Mail/
|
* @link http://pear.php.net/package/Mail/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -50,8 +50,7 @@ require_once 'PEAR.php';
|
||||||
* mailers under the PEAR hierarchy, and provides supporting functions
|
* mailers under the PEAR hierarchy, and provides supporting functions
|
||||||
* useful in multiple mailer backends.
|
* useful in multiple mailer backends.
|
||||||
*
|
*
|
||||||
* @access public
|
* @version $Revision$
|
||||||
* @version $Revision: 294747 $
|
|
||||||
* @package Mail
|
* @package Mail
|
||||||
*/
|
*/
|
||||||
class Mail
|
class Mail
|
||||||
|
@ -60,7 +59,7 @@ class Mail
|
||||||
* Line terminator used for separating header lines.
|
* Line terminator used for separating header lines.
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
var $sep = "\r\n";
|
public $sep = "\r\n";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides an interface for generating Mail:: objects of various
|
* Provides an interface for generating Mail:: objects of various
|
||||||
|
@ -68,10 +67,10 @@ class Mail
|
||||||
*
|
*
|
||||||
* @param string $driver The kind of Mail:: object to instantiate.
|
* @param string $driver The kind of Mail:: object to instantiate.
|
||||||
* @param array $params The parameters to pass to the Mail:: object.
|
* @param array $params The parameters to pass to the Mail:: object.
|
||||||
|
*
|
||||||
* @return object Mail a instance of the driver class or if fails a PEAR Error
|
* @return object Mail a instance of the driver class or if fails a PEAR Error
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function &factory($driver, $params = array())
|
public static function factory($driver, $params = array())
|
||||||
{
|
{
|
||||||
$driver = strtolower($driver);
|
$driver = strtolower($driver);
|
||||||
@include_once 'Mail/' . $driver . '.php';
|
@include_once 'Mail/' . $driver . '.php';
|
||||||
|
@ -108,10 +107,9 @@ class Mail
|
||||||
* containing a descriptive error message on
|
* containing a descriptive error message on
|
||||||
* failure.
|
* failure.
|
||||||
*
|
*
|
||||||
* @access public
|
|
||||||
* @deprecated use Mail_mail::send instead
|
* @deprecated use Mail_mail::send instead
|
||||||
*/
|
*/
|
||||||
function send($recipients, $headers, $body)
|
public function send($recipients, $headers, $body)
|
||||||
{
|
{
|
||||||
if (!is_array($headers)) {
|
if (!is_array($headers)) {
|
||||||
return PEAR::raiseError('$headers must be an array');
|
return PEAR::raiseError('$headers must be an array');
|
||||||
|
@ -147,10 +145,8 @@ class Mail
|
||||||
* filter is to prevent mail injection attacks.
|
* filter is to prevent mail injection attacks.
|
||||||
*
|
*
|
||||||
* @param array $headers The associative array of headers to sanitize.
|
* @param array $headers The associative array of headers to sanitize.
|
||||||
*
|
|
||||||
* @access private
|
|
||||||
*/
|
*/
|
||||||
function _sanitizeHeaders(&$headers)
|
protected function _sanitizeHeaders(&$headers)
|
||||||
{
|
{
|
||||||
foreach ($headers as $key => $value) {
|
foreach ($headers as $key => $value) {
|
||||||
$headers[$key] =
|
$headers[$key] =
|
||||||
|
@ -173,9 +169,8 @@ class Mail
|
||||||
* otherwise returns an array containing two
|
* otherwise returns an array containing two
|
||||||
* elements: Any From: address found in the headers,
|
* elements: Any From: address found in the headers,
|
||||||
* and the plain text version of the headers.
|
* and the plain text version of the headers.
|
||||||
* @access private
|
|
||||||
*/
|
*/
|
||||||
function prepareHeaders($headers)
|
protected function prepareHeaders($headers)
|
||||||
{
|
{
|
||||||
$lines = array();
|
$lines = array();
|
||||||
$from = null;
|
$from = null;
|
||||||
|
@ -235,9 +230,8 @@ class Mail
|
||||||
*
|
*
|
||||||
* @return mixed An array of forward paths (bare addresses) or a PEAR_Error
|
* @return mixed An array of forward paths (bare addresses) or a PEAR_Error
|
||||||
* object if the address list could not be parsed.
|
* object if the address list could not be parsed.
|
||||||
* @access private
|
|
||||||
*/
|
*/
|
||||||
function parseRecipients($recipients)
|
protected function parseRecipients($recipients)
|
||||||
{
|
{
|
||||||
include_once 'Mail/RFC822.php';
|
include_once 'Mail/RFC822.php';
|
||||||
|
|
||||||
|
@ -250,7 +244,8 @@ class Mail
|
||||||
// Parse recipients, leaving out all personal info. This is
|
// Parse recipients, leaving out all personal info. This is
|
||||||
// for smtp recipients, etc. All relevant personal information
|
// for smtp recipients, etc. All relevant personal information
|
||||||
// should already be in the headers.
|
// should already be in the headers.
|
||||||
$addresses = Mail_RFC822::parseAddressList($recipients, 'localhost', false);
|
$Mail_RFC822 = new Mail_RFC822();
|
||||||
|
$addresses = $Mail_RFC822->parseAddressList($recipients, 'localhost', false);
|
||||||
|
|
||||||
// If parseAddressList() returned a PEAR_Error object, just return it.
|
// If parseAddressList() returned a PEAR_Error object, just return it.
|
||||||
if (is_a($addresses, 'PEAR_Error')) {
|
if (is_a($addresses, 'PEAR_Error')) {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
/**
|
/**
|
||||||
* RFC 822 Email address list validation Utility
|
* RFC 822 Email address list validation Utility
|
||||||
*
|
*
|
||||||
* PHP versions 4 and 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* LICENSE:
|
* LICENSE:
|
||||||
*
|
*
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
* @author Chuck Hagenbuch <chuck@horde.org
|
* @author Chuck Hagenbuch <chuck@horde.org
|
||||||
* @copyright 2001-2010 Richard Heyes
|
* @copyright 2001-2010 Richard Heyes
|
||||||
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
||||||
* @version CVS: $Id: RFC822.php 294749 2010-02-08 08:22:25Z clockwerx $
|
* @version CVS: $Id$
|
||||||
* @link http://pear.php.net/package/Mail/
|
* @link http://pear.php.net/package/Mail/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
*
|
*
|
||||||
* @author Richard Heyes <richard@phpguru.org>
|
* @author Richard Heyes <richard@phpguru.org>
|
||||||
* @author Chuck Hagenbuch <chuck@horde.org>
|
* @author Chuck Hagenbuch <chuck@horde.org>
|
||||||
* @version $Revision: 294749 $
|
* @version $Revision$
|
||||||
* @license BSD
|
* @license BSD
|
||||||
* @package Mail
|
* @package Mail
|
||||||
*/
|
*/
|
||||||
|
@ -141,7 +141,6 @@ class Mail_RFC822 {
|
||||||
* Sets up the object. The address must either be set here or when
|
* Sets up the object. The address must either be set here or when
|
||||||
* calling parseAddressList(). One or the other.
|
* calling parseAddressList(). One or the other.
|
||||||
*
|
*
|
||||||
* @access public
|
|
||||||
* @param string $address The address(es) to validate.
|
* @param string $address The address(es) to validate.
|
||||||
* @param string $default_domain Default domain/host etc. If not supplied, will be set to localhost.
|
* @param string $default_domain Default domain/host etc. If not supplied, will be set to localhost.
|
||||||
* @param boolean $nest_groups Whether to return the structure with groups nested for easier viewing.
|
* @param boolean $nest_groups Whether to return the structure with groups nested for easier viewing.
|
||||||
|
@ -149,7 +148,7 @@ class Mail_RFC822 {
|
||||||
*
|
*
|
||||||
* @return object Mail_RFC822 A new Mail_RFC822 object.
|
* @return object Mail_RFC822 A new Mail_RFC822 object.
|
||||||
*/
|
*/
|
||||||
function Mail_RFC822($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null)
|
public function __construct($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null)
|
||||||
{
|
{
|
||||||
if (isset($address)) $this->address = $address;
|
if (isset($address)) $this->address = $address;
|
||||||
if (isset($default_domain)) $this->default_domain = $default_domain;
|
if (isset($default_domain)) $this->default_domain = $default_domain;
|
||||||
|
@ -162,7 +161,6 @@ class Mail_RFC822 {
|
||||||
* Starts the whole process. The address must either be set here
|
* Starts the whole process. The address must either be set here
|
||||||
* or when creating the object. One or the other.
|
* or when creating the object. One or the other.
|
||||||
*
|
*
|
||||||
* @access public
|
|
||||||
* @param string $address The address(es) to validate.
|
* @param string $address The address(es) to validate.
|
||||||
* @param string $default_domain Default domain/host etc.
|
* @param string $default_domain Default domain/host etc.
|
||||||
* @param boolean $nest_groups Whether to return the structure with groups nested for easier viewing.
|
* @param boolean $nest_groups Whether to return the structure with groups nested for easier viewing.
|
||||||
|
@ -170,7 +168,7 @@ class Mail_RFC822 {
|
||||||
*
|
*
|
||||||
* @return array A structured array of addresses.
|
* @return array A structured array of addresses.
|
||||||
*/
|
*/
|
||||||
function parseAddressList($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null)
|
public function parseAddressList($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null)
|
||||||
{
|
{
|
||||||
if (!isset($this) || !isset($this->mailRFC822)) {
|
if (!isset($this) || !isset($this->mailRFC822)) {
|
||||||
$obj = new Mail_RFC822($address, $default_domain, $nest_groups, $validate, $limit);
|
$obj = new Mail_RFC822($address, $default_domain, $nest_groups, $validate, $limit);
|
||||||
|
@ -222,11 +220,10 @@ class Mail_RFC822 {
|
||||||
/**
|
/**
|
||||||
* Splits an address into separate addresses.
|
* Splits an address into separate addresses.
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $address The addresses to split.
|
* @param string $address The addresses to split.
|
||||||
* @return boolean Success or failure.
|
* @return boolean Success or failure.
|
||||||
*/
|
*/
|
||||||
function _splitAddresses($address)
|
protected function _splitAddresses($address)
|
||||||
{
|
{
|
||||||
if (!empty($this->limit) && count($this->addresses) == $this->limit) {
|
if (!empty($this->limit) && count($this->addresses) == $this->limit) {
|
||||||
return '';
|
return '';
|
||||||
|
@ -298,11 +295,10 @@ class Mail_RFC822 {
|
||||||
/**
|
/**
|
||||||
* Checks for a group at the start of the string.
|
* Checks for a group at the start of the string.
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $address The address to check.
|
* @param string $address The address to check.
|
||||||
* @return boolean Whether or not there is a group at the start of the string.
|
* @return boolean Whether or not there is a group at the start of the string.
|
||||||
*/
|
*/
|
||||||
function _isGroup($address)
|
protected function _isGroup($address)
|
||||||
{
|
{
|
||||||
// First comma not in quotes, angles or escaped:
|
// First comma not in quotes, angles or escaped:
|
||||||
$parts = explode(',', $address);
|
$parts = explode(',', $address);
|
||||||
|
@ -322,12 +318,11 @@ class Mail_RFC822 {
|
||||||
/**
|
/**
|
||||||
* A common function that will check an exploded string.
|
* A common function that will check an exploded string.
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param array $parts The exloded string.
|
* @param array $parts The exloded string.
|
||||||
* @param string $char The char that was exploded on.
|
* @param string $char The char that was exploded on.
|
||||||
* @return mixed False if the string contains unclosed quotes/brackets, or the string on success.
|
* @return mixed False if the string contains unclosed quotes/brackets, or the string on success.
|
||||||
*/
|
*/
|
||||||
function _splitCheck($parts, $char)
|
protected function _splitCheck($parts, $char)
|
||||||
{
|
{
|
||||||
$string = $parts[0];
|
$string = $parts[0];
|
||||||
|
|
||||||
|
@ -355,12 +350,11 @@ class Mail_RFC822 {
|
||||||
/**
|
/**
|
||||||
* Checks if a string has unclosed quotes or not.
|
* Checks if a string has unclosed quotes or not.
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $string The string to check.
|
* @param string $string The string to check.
|
||||||
* @return boolean True if there are unclosed quotes inside the string,
|
* @return boolean True if there are unclosed quotes inside the string,
|
||||||
* false otherwise.
|
* false otherwise.
|
||||||
*/
|
*/
|
||||||
function _hasUnclosedQuotes($string)
|
protected function _hasUnclosedQuotes($string)
|
||||||
{
|
{
|
||||||
$string = trim($string);
|
$string = trim($string);
|
||||||
$iMax = strlen($string);
|
$iMax = strlen($string);
|
||||||
|
@ -392,12 +386,11 @@ class Mail_RFC822 {
|
||||||
* Checks if a string has an unclosed brackets or not. IMPORTANT:
|
* Checks if a string has an unclosed brackets or not. IMPORTANT:
|
||||||
* This function handles both angle brackets and square brackets;
|
* This function handles both angle brackets and square brackets;
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $string The string to check.
|
* @param string $string The string to check.
|
||||||
* @param string $chars The characters to check for.
|
* @param string $chars The characters to check for.
|
||||||
* @return boolean True if there are unclosed brackets inside the string, false otherwise.
|
* @return boolean True if there are unclosed brackets inside the string, false otherwise.
|
||||||
*/
|
*/
|
||||||
function _hasUnclosedBrackets($string, $chars)
|
protected function _hasUnclosedBrackets($string, $chars)
|
||||||
{
|
{
|
||||||
$num_angle_start = substr_count($string, $chars[0]);
|
$num_angle_start = substr_count($string, $chars[0]);
|
||||||
$num_angle_end = substr_count($string, $chars[1]);
|
$num_angle_end = substr_count($string, $chars[1]);
|
||||||
|
@ -416,13 +409,12 @@ class Mail_RFC822 {
|
||||||
/**
|
/**
|
||||||
* Sub function that is used only by hasUnclosedBrackets().
|
* Sub function that is used only by hasUnclosedBrackets().
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $string The string to check.
|
* @param string $string The string to check.
|
||||||
* @param integer &$num The number of occurences.
|
* @param integer &$num The number of occurences.
|
||||||
* @param string $char The character to count.
|
* @param string $char The character to count.
|
||||||
* @return integer The number of occurences of $char in $string, adjusted for backslashes.
|
* @return integer The number of occurences of $char in $string, adjusted for backslashes.
|
||||||
*/
|
*/
|
||||||
function _hasUnclosedBracketsSub($string, &$num, $char)
|
protected function _hasUnclosedBracketsSub($string, &$num, $char)
|
||||||
{
|
{
|
||||||
$parts = explode($char, $string);
|
$parts = explode($char, $string);
|
||||||
for ($i = 0; $i < count($parts); $i++){
|
for ($i = 0; $i < count($parts); $i++){
|
||||||
|
@ -438,11 +430,10 @@ class Mail_RFC822 {
|
||||||
/**
|
/**
|
||||||
* Function to begin checking the address.
|
* Function to begin checking the address.
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $address The address to validate.
|
* @param string $address The address to validate.
|
||||||
* @return mixed False on failure, or a structured array of address information on success.
|
* @return mixed False on failure, or a structured array of address information on success.
|
||||||
*/
|
*/
|
||||||
function _validateAddress($address)
|
protected function _validateAddress($address)
|
||||||
{
|
{
|
||||||
$is_group = false;
|
$is_group = false;
|
||||||
$addresses = array();
|
$addresses = array();
|
||||||
|
@ -483,14 +474,6 @@ class Mail_RFC822 {
|
||||||
$addresses[] = $address['address'];
|
$addresses[] = $address['address'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check that $addresses is set, if address like this:
|
|
||||||
// Groupname:;
|
|
||||||
// Then errors were appearing.
|
|
||||||
if (!count($addresses)){
|
|
||||||
$this->error = 'Empty group.';
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Trim the whitespace from all of the address strings.
|
// Trim the whitespace from all of the address strings.
|
||||||
array_map('trim', $addresses);
|
array_map('trim', $addresses);
|
||||||
|
|
||||||
|
@ -531,11 +514,10 @@ class Mail_RFC822 {
|
||||||
/**
|
/**
|
||||||
* Function to validate a phrase.
|
* Function to validate a phrase.
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $phrase The phrase to check.
|
* @param string $phrase The phrase to check.
|
||||||
* @return boolean Success or failure.
|
* @return boolean Success or failure.
|
||||||
*/
|
*/
|
||||||
function _validatePhrase($phrase)
|
protected function _validatePhrase($phrase)
|
||||||
{
|
{
|
||||||
// Splits on one or more Tab or space.
|
// Splits on one or more Tab or space.
|
||||||
$parts = preg_split('/[ \\x09]+/', $phrase, -1, PREG_SPLIT_NO_EMPTY);
|
$parts = preg_split('/[ \\x09]+/', $phrase, -1, PREG_SPLIT_NO_EMPTY);
|
||||||
|
@ -572,11 +554,10 @@ class Mail_RFC822 {
|
||||||
* can split a list of addresses up before encoding personal names
|
* can split a list of addresses up before encoding personal names
|
||||||
* (umlauts, etc.), for example.
|
* (umlauts, etc.), for example.
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $atom The string to check.
|
* @param string $atom The string to check.
|
||||||
* @return boolean Success or failure.
|
* @return boolean Success or failure.
|
||||||
*/
|
*/
|
||||||
function _validateAtom($atom)
|
protected function _validateAtom($atom)
|
||||||
{
|
{
|
||||||
if (!$this->validate) {
|
if (!$this->validate) {
|
||||||
// Validation has been turned off; assume the atom is okay.
|
// Validation has been turned off; assume the atom is okay.
|
||||||
|
@ -605,11 +586,10 @@ class Mail_RFC822 {
|
||||||
* Function to validate quoted string, which is:
|
* Function to validate quoted string, which is:
|
||||||
* quoted-string = <"> *(qtext/quoted-pair) <">
|
* quoted-string = <"> *(qtext/quoted-pair) <">
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $qstring The string to check
|
* @param string $qstring The string to check
|
||||||
* @return boolean Success or failure.
|
* @return boolean Success or failure.
|
||||||
*/
|
*/
|
||||||
function _validateQuotedString($qstring)
|
protected function _validateQuotedString($qstring)
|
||||||
{
|
{
|
||||||
// Leading and trailing "
|
// Leading and trailing "
|
||||||
$qstring = substr($qstring, 1, -1);
|
$qstring = substr($qstring, 1, -1);
|
||||||
|
@ -623,11 +603,10 @@ class Mail_RFC822 {
|
||||||
* mailbox = addr-spec ; simple address
|
* mailbox = addr-spec ; simple address
|
||||||
* / phrase route-addr ; name and route-addr
|
* / phrase route-addr ; name and route-addr
|
||||||
*
|
*
|
||||||
* @access public
|
|
||||||
* @param string &$mailbox The string to check.
|
* @param string &$mailbox The string to check.
|
||||||
* @return boolean Success or failure.
|
* @return boolean Success or failure.
|
||||||
*/
|
*/
|
||||||
function validateMailbox(&$mailbox)
|
public function validateMailbox(&$mailbox)
|
||||||
{
|
{
|
||||||
// A couple of defaults.
|
// A couple of defaults.
|
||||||
$phrase = '';
|
$phrase = '';
|
||||||
|
@ -712,11 +691,10 @@ class Mail_RFC822 {
|
||||||
* Angle brackets have already been removed at the point of
|
* Angle brackets have already been removed at the point of
|
||||||
* getting to this function.
|
* getting to this function.
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $route_addr The string to check.
|
* @param string $route_addr The string to check.
|
||||||
* @return mixed False on failure, or an array containing validated address/route information on success.
|
* @return mixed False on failure, or an array containing validated address/route information on success.
|
||||||
*/
|
*/
|
||||||
function _validateRouteAddr($route_addr)
|
protected function _validateRouteAddr($route_addr)
|
||||||
{
|
{
|
||||||
// Check for colon.
|
// Check for colon.
|
||||||
if (strpos($route_addr, ':') !== false) {
|
if (strpos($route_addr, ':') !== false) {
|
||||||
|
@ -762,11 +740,10 @@ class Mail_RFC822 {
|
||||||
* Function to validate a route, which is:
|
* Function to validate a route, which is:
|
||||||
* route = 1#("@" domain) ":"
|
* route = 1#("@" domain) ":"
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $route The string to check.
|
* @param string $route The string to check.
|
||||||
* @return mixed False on failure, or the validated $route on success.
|
* @return mixed False on failure, or the validated $route on success.
|
||||||
*/
|
*/
|
||||||
function _validateRoute($route)
|
protected function _validateRoute($route)
|
||||||
{
|
{
|
||||||
// Split on comma.
|
// Split on comma.
|
||||||
$domains = explode(',', trim($route));
|
$domains = explode(',', trim($route));
|
||||||
|
@ -785,11 +762,10 @@ class Mail_RFC822 {
|
||||||
*
|
*
|
||||||
* domain = sub-domain *("." sub-domain)
|
* domain = sub-domain *("." sub-domain)
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $domain The string to check.
|
* @param string $domain The string to check.
|
||||||
* @return mixed False on failure, or the validated domain on success.
|
* @return mixed False on failure, or the validated domain on success.
|
||||||
*/
|
*/
|
||||||
function _validateDomain($domain)
|
protected function _validateDomain($domain)
|
||||||
{
|
{
|
||||||
// Note the different use of $subdomains and $sub_domains
|
// Note the different use of $subdomains and $sub_domains
|
||||||
$subdomains = explode('.', $domain);
|
$subdomains = explode('.', $domain);
|
||||||
|
@ -813,11 +789,10 @@ class Mail_RFC822 {
|
||||||
* Function to validate a subdomain:
|
* Function to validate a subdomain:
|
||||||
* subdomain = domain-ref / domain-literal
|
* subdomain = domain-ref / domain-literal
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $subdomain The string to check.
|
* @param string $subdomain The string to check.
|
||||||
* @return boolean Success or failure.
|
* @return boolean Success or failure.
|
||||||
*/
|
*/
|
||||||
function _validateSubdomain($subdomain)
|
protected function _validateSubdomain($subdomain)
|
||||||
{
|
{
|
||||||
if (preg_match('|^\[(.*)]$|', $subdomain, $arr)){
|
if (preg_match('|^\[(.*)]$|', $subdomain, $arr)){
|
||||||
if (!$this->_validateDliteral($arr[1])) return false;
|
if (!$this->_validateDliteral($arr[1])) return false;
|
||||||
|
@ -833,11 +808,10 @@ class Mail_RFC822 {
|
||||||
* Function to validate a domain literal:
|
* Function to validate a domain literal:
|
||||||
* domain-literal = "[" *(dtext / quoted-pair) "]"
|
* domain-literal = "[" *(dtext / quoted-pair) "]"
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $dliteral The string to check.
|
* @param string $dliteral The string to check.
|
||||||
* @return boolean Success or failure.
|
* @return boolean Success or failure.
|
||||||
*/
|
*/
|
||||||
function _validateDliteral($dliteral)
|
protected function _validateDliteral($dliteral)
|
||||||
{
|
{
|
||||||
return !preg_match('/(.)[][\x0D\\\\]/', $dliteral, $matches) && $matches[1] != '\\';
|
return !preg_match('/(.)[][\x0D\\\\]/', $dliteral, $matches) && $matches[1] != '\\';
|
||||||
}
|
}
|
||||||
|
@ -847,11 +821,10 @@ class Mail_RFC822 {
|
||||||
*
|
*
|
||||||
* addr-spec = local-part "@" domain
|
* addr-spec = local-part "@" domain
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $addr_spec The string to check.
|
* @param string $addr_spec The string to check.
|
||||||
* @return mixed False on failure, or the validated addr-spec on success.
|
* @return mixed False on failure, or the validated addr-spec on success.
|
||||||
*/
|
*/
|
||||||
function _validateAddrSpec($addr_spec)
|
protected function _validateAddrSpec($addr_spec)
|
||||||
{
|
{
|
||||||
$addr_spec = trim($addr_spec);
|
$addr_spec = trim($addr_spec);
|
||||||
|
|
||||||
|
@ -878,11 +851,10 @@ class Mail_RFC822 {
|
||||||
* Function to validate the local part of an address:
|
* Function to validate the local part of an address:
|
||||||
* local-part = word *("." word)
|
* local-part = word *("." word)
|
||||||
*
|
*
|
||||||
* @access private
|
|
||||||
* @param string $local_part
|
* @param string $local_part
|
||||||
* @return mixed False on failure, or the validated local part on success.
|
* @return mixed False on failure, or the validated local part on success.
|
||||||
*/
|
*/
|
||||||
function _validateLocalPart($local_part)
|
protected function _validateLocalPart($local_part)
|
||||||
{
|
{
|
||||||
$parts = explode('.', $local_part);
|
$parts = explode('.', $local_part);
|
||||||
$words = array();
|
$words = array();
|
||||||
|
@ -897,6 +869,10 @@ class Mail_RFC822 {
|
||||||
|
|
||||||
// Validate each word.
|
// Validate each word.
|
||||||
foreach ($words as $word) {
|
foreach ($words as $word) {
|
||||||
|
// word cannot be empty (#17317)
|
||||||
|
if ($word === '') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
// If this word contains an unquoted space, it is invalid. (6.2.4)
|
// If this word contains an unquoted space, it is invalid. (6.2.4)
|
||||||
if (strpos($word, ' ') && $word[0] !== '"')
|
if (strpos($word, ' ') && $word[0] !== '"')
|
||||||
{
|
{
|
||||||
|
@ -920,7 +896,7 @@ class Mail_RFC822 {
|
||||||
* @param string $data Addresses to count
|
* @param string $data Addresses to count
|
||||||
* @return int Approximate count
|
* @return int Approximate count
|
||||||
*/
|
*/
|
||||||
function approximateCount($data)
|
public function approximateCount($data)
|
||||||
{
|
{
|
||||||
return count(preg_split('/(?<!\\\\),/', $data));
|
return count(preg_split('/(?<!\\\\),/', $data));
|
||||||
}
|
}
|
||||||
|
@ -938,7 +914,7 @@ class Mail_RFC822 {
|
||||||
* @return mixed False if it fails, an indexed array
|
* @return mixed False if it fails, an indexed array
|
||||||
* username/domain if it matches
|
* username/domain if it matches
|
||||||
*/
|
*/
|
||||||
function isValidInetAddress($data, $strict = false)
|
public function isValidInetAddress($data, $strict = false)
|
||||||
{
|
{
|
||||||
$regex = $strict ? '/^([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i' : '/^([*+!.&#$|\'\\%\/0-9a-z^_`{}=?~:-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i';
|
$regex = $strict ? '/^([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i' : '/^([*+!.&#$|\'\\%\/0-9a-z^_`{}=?~:-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i';
|
||||||
if (preg_match($regex, trim($data), $matches)) {
|
if (preg_match($regex, trim($data), $matches)) {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
/**
|
/**
|
||||||
* internal PHP-mail() implementation of the PEAR Mail:: interface.
|
* internal PHP-mail() implementation of the PEAR Mail:: interface.
|
||||||
*
|
*
|
||||||
* PHP versions 4 and 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* LICENSE:
|
* LICENSE:
|
||||||
*
|
*
|
||||||
|
@ -39,14 +39,14 @@
|
||||||
* @author Chuck Hagenbuch <chuck@horde.org>
|
* @author Chuck Hagenbuch <chuck@horde.org>
|
||||||
* @copyright 2010 Chuck Hagenbuch
|
* @copyright 2010 Chuck Hagenbuch
|
||||||
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
||||||
* @version CVS: $Id: mail.php 294747 2010-02-08 08:18:33Z clockwerx $
|
* @version CVS: $Id$
|
||||||
* @link http://pear.php.net/package/Mail/
|
* @link http://pear.php.net/package/Mail/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* internal PHP-mail() implementation of the PEAR Mail:: interface.
|
* internal PHP-mail() implementation of the PEAR Mail:: interface.
|
||||||
* @package Mail
|
* @package Mail
|
||||||
* @version $Revision: 294747 $
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Mail_mail extends Mail {
|
class Mail_mail extends Mail {
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ class Mail_mail extends Mail {
|
||||||
*
|
*
|
||||||
* @param array $params Extra arguments for the mail() function.
|
* @param array $params Extra arguments for the mail() function.
|
||||||
*/
|
*/
|
||||||
function Mail_mail($params = null)
|
public function __construct($params = null)
|
||||||
{
|
{
|
||||||
// The other mail implementations accept parameters as arrays.
|
// The other mail implementations accept parameters as arrays.
|
||||||
// In the interest of being consistent, explode an array into
|
// In the interest of being consistent, explode an array into
|
||||||
|
@ -109,10 +109,8 @@ class Mail_mail extends Mail {
|
||||||
* @return mixed Returns true on success, or a PEAR_Error
|
* @return mixed Returns true on success, or a PEAR_Error
|
||||||
* containing a descriptive error message on
|
* containing a descriptive error message on
|
||||||
* failure.
|
* failure.
|
||||||
*
|
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function send($recipients, $headers, $body)
|
public function send($recipients, $headers, $body)
|
||||||
{
|
{
|
||||||
if (!is_array($headers)) {
|
if (!is_array($headers)) {
|
||||||
return PEAR::raiseError('$headers must be an array');
|
return PEAR::raiseError('$headers must be an array');
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
/**
|
/**
|
||||||
* Mock implementation
|
* Mock implementation
|
||||||
*
|
*
|
||||||
* PHP versions 4 and 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* LICENSE:
|
* LICENSE:
|
||||||
*
|
*
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
* @author Chuck Hagenbuch <chuck@horde.org>
|
* @author Chuck Hagenbuch <chuck@horde.org>
|
||||||
* @copyright 2010 Chuck Hagenbuch
|
* @copyright 2010 Chuck Hagenbuch
|
||||||
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
||||||
* @version CVS: $Id: mock.php 294747 2010-02-08 08:18:33Z clockwerx $
|
* @version CVS: $Id$
|
||||||
* @link http://pear.php.net/package/Mail/
|
* @link http://pear.php.net/package/Mail/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
* Mock implementation of the PEAR Mail:: interface for testing.
|
* Mock implementation of the PEAR Mail:: interface for testing.
|
||||||
* @access public
|
* @access public
|
||||||
* @package Mail
|
* @package Mail
|
||||||
* @version $Revision: 294747 $
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Mail_mock extends Mail {
|
class Mail_mock extends Mail {
|
||||||
|
|
||||||
|
@ -55,23 +55,22 @@ class Mail_mock extends Mail {
|
||||||
* Array of messages that have been sent with the mock.
|
* Array of messages that have been sent with the mock.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
var $sentMessages = array();
|
public $sentMessages = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback before sending mail.
|
* Callback before sending mail.
|
||||||
*
|
*
|
||||||
* @var callback
|
* @var callback
|
||||||
*/
|
*/
|
||||||
var $_preSendCallback;
|
protected $_preSendCallback;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback after sending mai.
|
* Callback after sending mai.
|
||||||
*
|
*
|
||||||
* @var callback
|
* @var callback
|
||||||
*/
|
*/
|
||||||
var $_postSendCallback;
|
protected $_postSendCallback;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
|
@ -82,9 +81,8 @@ class Mail_mock extends Mail {
|
||||||
* postSendCallback Called after an email would have been sent.
|
* postSendCallback Called after an email would have been sent.
|
||||||
*
|
*
|
||||||
* @param array Hash containing any parameters.
|
* @param array Hash containing any parameters.
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function Mail_mock($params)
|
public function __construct($params)
|
||||||
{
|
{
|
||||||
if (isset($params['preSendCallback']) &&
|
if (isset($params['preSendCallback']) &&
|
||||||
is_callable($params['preSendCallback'])) {
|
is_callable($params['preSendCallback'])) {
|
||||||
|
@ -120,9 +118,8 @@ class Mail_mock extends Mail {
|
||||||
* @return mixed Returns true on success, or a PEAR_Error
|
* @return mixed Returns true on success, or a PEAR_Error
|
||||||
* containing a descriptive error message on
|
* containing a descriptive error message on
|
||||||
* failure.
|
* failure.
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function send($recipients, $headers, $body)
|
public function send($recipients, $headers, $body)
|
||||||
{
|
{
|
||||||
if ($this->_preSendCallback) {
|
if ($this->_preSendCallback) {
|
||||||
call_user_func_array($this->_preSendCallback,
|
call_user_func_array($this->_preSendCallback,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
/**
|
/**
|
||||||
* Null implementation of the PEAR Mail interface
|
* Null implementation of the PEAR Mail interface
|
||||||
*
|
*
|
||||||
* PHP versions 4 and 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* LICENSE:
|
* LICENSE:
|
||||||
*
|
*
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
* @author Phil Kernick <philk@rotfl.com.au>
|
* @author Phil Kernick <philk@rotfl.com.au>
|
||||||
* @copyright 2010 Phil Kernick
|
* @copyright 2010 Phil Kernick
|
||||||
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
||||||
* @version CVS: $Id: null.php 294747 2010-02-08 08:18:33Z clockwerx $
|
* @version CVS: $Id$
|
||||||
* @link http://pear.php.net/package/Mail/
|
* @link http://pear.php.net/package/Mail/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
* Null implementation of the PEAR Mail:: interface.
|
* Null implementation of the PEAR Mail:: interface.
|
||||||
* @access public
|
* @access public
|
||||||
* @package Mail
|
* @package Mail
|
||||||
* @version $Revision: 294747 $
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Mail_null extends Mail {
|
class Mail_null extends Mail {
|
||||||
|
|
||||||
|
@ -74,9 +74,8 @@ class Mail_null extends Mail {
|
||||||
* @return mixed Returns true on success, or a PEAR_Error
|
* @return mixed Returns true on success, or a PEAR_Error
|
||||||
* containing a descriptive error message on
|
* containing a descriptive error message on
|
||||||
* failure.
|
* failure.
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function send($recipients, $headers, $body)
|
public function send($recipients, $headers, $body)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
//
|
//
|
||||||
// +----------------------------------------------------------------------+
|
// +----------------------------------------------------------------------+
|
||||||
// | PHP Version 4 |
|
// | PHP Version 5 |
|
||||||
// +----------------------------------------------------------------------+
|
// +----------------------------------------------------------------------+
|
||||||
// | Copyright (c) 1997-2003 The PHP Group |
|
// | Copyright (c) 1997-2003 The PHP Group |
|
||||||
// +----------------------------------------------------------------------+
|
// +----------------------------------------------------------------------+
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
* Sendmail implementation of the PEAR Mail:: interface.
|
* Sendmail implementation of the PEAR Mail:: interface.
|
||||||
* @access public
|
* @access public
|
||||||
* @package Mail
|
* @package Mail
|
||||||
* @version $Revision: 294744 $
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Mail_sendmail extends Mail {
|
class Mail_sendmail extends Mail {
|
||||||
|
|
||||||
|
@ -54,9 +54,8 @@ class Mail_sendmail extends Mail {
|
||||||
*
|
*
|
||||||
* @param array $params Hash containing any parameters different from the
|
* @param array $params Hash containing any parameters different from the
|
||||||
* defaults.
|
* defaults.
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function Mail_sendmail($params)
|
public function __construct($params)
|
||||||
{
|
{
|
||||||
if (isset($params['sendmail_path'])) {
|
if (isset($params['sendmail_path'])) {
|
||||||
$this->sendmail_path = $params['sendmail_path'];
|
$this->sendmail_path = $params['sendmail_path'];
|
||||||
|
@ -100,9 +99,8 @@ class Mail_sendmail extends Mail {
|
||||||
* @return mixed Returns true on success, or a PEAR_Error
|
* @return mixed Returns true on success, or a PEAR_Error
|
||||||
* containing a descriptive error message on
|
* containing a descriptive error message on
|
||||||
* failure.
|
* failure.
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function send($recipients, $headers, $body)
|
public function send($recipients, $headers, $body)
|
||||||
{
|
{
|
||||||
if (!is_array($headers)) {
|
if (!is_array($headers)) {
|
||||||
return PEAR::raiseError('$headers must be an array');
|
return PEAR::raiseError('$headers must be an array');
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
/**
|
/**
|
||||||
* SMTP implementation of the PEAR Mail interface. Requires the Net_SMTP class.
|
* SMTP implementation of the PEAR Mail interface. Requires the Net_SMTP class.
|
||||||
*
|
*
|
||||||
* PHP versions 4 and 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* LICENSE:
|
* LICENSE:
|
||||||
*
|
*
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
* @author Chuck Hagenbuch <chuck@horde.org>
|
* @author Chuck Hagenbuch <chuck@horde.org>
|
||||||
* @copyright 2010 Chuck Hagenbuch
|
* @copyright 2010 Chuck Hagenbuch
|
||||||
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
||||||
* @version CVS: $Id: smtp.php 294747 2010-02-08 08:18:33Z clockwerx $
|
* @version CVS: $Id$
|
||||||
* @link http://pear.php.net/package/Mail/
|
* @link http://pear.php.net/package/Mail/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ define('PEAR_MAIL_SMTP_ERROR_DATA', 10006);
|
||||||
* SMTP implementation of the PEAR Mail interface. Requires the Net_SMTP class.
|
* SMTP implementation of the PEAR Mail interface. Requires the Net_SMTP class.
|
||||||
* @access public
|
* @access public
|
||||||
* @package Mail
|
* @package Mail
|
||||||
* @version $Revision: 294747 $
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Mail_smtp extends Mail {
|
class Mail_smtp extends Mail {
|
||||||
|
|
||||||
|
@ -163,6 +163,8 @@ class Mail_smtp extends Mail {
|
||||||
*/
|
*/
|
||||||
var $pipelining;
|
var $pipelining;
|
||||||
|
|
||||||
|
var $socket_options = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
|
@ -186,9 +188,8 @@ class Mail_smtp extends Mail {
|
||||||
*
|
*
|
||||||
* @param array Hash containing any parameters different from the
|
* @param array Hash containing any parameters different from the
|
||||||
* defaults.
|
* defaults.
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function Mail_smtp($params)
|
public function __construct($params)
|
||||||
{
|
{
|
||||||
if (isset($params['host'])) $this->host = $params['host'];
|
if (isset($params['host'])) $this->host = $params['host'];
|
||||||
if (isset($params['port'])) $this->port = $params['port'];
|
if (isset($params['port'])) $this->port = $params['port'];
|
||||||
|
@ -200,20 +201,18 @@ class Mail_smtp extends Mail {
|
||||||
if (isset($params['debug'])) $this->debug = (bool)$params['debug'];
|
if (isset($params['debug'])) $this->debug = (bool)$params['debug'];
|
||||||
if (isset($params['persist'])) $this->persist = (bool)$params['persist'];
|
if (isset($params['persist'])) $this->persist = (bool)$params['persist'];
|
||||||
if (isset($params['pipelining'])) $this->pipelining = (bool)$params['pipelining'];
|
if (isset($params['pipelining'])) $this->pipelining = (bool)$params['pipelining'];
|
||||||
|
if (isset($params['socket_options'])) $this->socket_options = $params['socket_options'];
|
||||||
// Deprecated options
|
// Deprecated options
|
||||||
if (isset($params['verp'])) {
|
if (isset($params['verp'])) {
|
||||||
$this->addServiceExtensionParameter('XVERP', is_bool($params['verp']) ? null : $params['verp']);
|
$this->addServiceExtensionParameter('XVERP', is_bool($params['verp']) ? null : $params['verp']);
|
||||||
}
|
}
|
||||||
|
|
||||||
register_shutdown_function(array(&$this, '_Mail_smtp'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destructor implementation to ensure that we disconnect from any
|
* Destructor implementation to ensure that we disconnect from any
|
||||||
* potentially-alive persistent SMTP connections.
|
* potentially-alive persistent SMTP connections.
|
||||||
*/
|
*/
|
||||||
function _Mail_smtp()
|
public function __destruct()
|
||||||
{
|
{
|
||||||
$this->disconnect();
|
$this->disconnect();
|
||||||
}
|
}
|
||||||
|
@ -240,12 +239,11 @@ class Mail_smtp extends Mail {
|
||||||
* @return mixed Returns true on success, or a PEAR_Error
|
* @return mixed Returns true on success, or a PEAR_Error
|
||||||
* containing a descriptive error message on
|
* containing a descriptive error message on
|
||||||
* failure.
|
* failure.
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function send($recipients, $headers, $body)
|
public function send($recipients, $headers, $body)
|
||||||
{
|
{
|
||||||
/* If we don't already have an SMTP object, create one. */
|
/* If we don't already have an SMTP object, create one. */
|
||||||
$result = &$this->getSMTPObject();
|
$result = $this->getSMTPObject();
|
||||||
if (PEAR::isError($result)) {
|
if (PEAR::isError($result)) {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
@ -304,7 +302,7 @@ class Mail_smtp extends Mail {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send the message's headers and the body as SMTP data. */
|
/* Send the message's headers and the body as SMTP data. */
|
||||||
$res = $this->_smtp->data($textHeaders . "\r\n\r\n" . $body);
|
$res = $this->_smtp->data($body, $textHeaders);
|
||||||
list(,$args) = $this->_smtp->getResponse();
|
list(,$args) = $this->_smtp->getResponse();
|
||||||
|
|
||||||
if (preg_match("/Ok: queued as (.*)/", $args, $queued)) {
|
if (preg_match("/Ok: queued as (.*)/", $args, $queued)) {
|
||||||
|
@ -337,18 +335,20 @@ class Mail_smtp extends Mail {
|
||||||
* failure.
|
* failure.
|
||||||
*
|
*
|
||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function &getSMTPObject()
|
public function getSMTPObject()
|
||||||
{
|
{
|
||||||
if (is_object($this->_smtp) !== false) {
|
if (is_object($this->_smtp) !== false) {
|
||||||
return $this->_smtp;
|
return $this->_smtp;
|
||||||
}
|
}
|
||||||
|
|
||||||
include_once 'Net/SMTP.php';
|
include_once 'Net/SMTP.php';
|
||||||
$this->_smtp = &new Net_SMTP($this->host,
|
$this->_smtp = new Net_SMTP($this->host,
|
||||||
$this->port,
|
$this->port,
|
||||||
$this->localhost);
|
$this->localhost,
|
||||||
|
$this->pipelining,
|
||||||
|
0,
|
||||||
|
$this->socket_options);
|
||||||
|
|
||||||
/* If we still don't have an SMTP object at this point, fail. */
|
/* If we still don't have an SMTP object at this point, fail. */
|
||||||
if (is_object($this->_smtp) === false) {
|
if (is_object($this->_smtp) === false) {
|
||||||
|
@ -393,9 +393,8 @@ class Mail_smtp extends Mail {
|
||||||
* @param string Any value the keyword needs.
|
* @param string Any value the keyword needs.
|
||||||
*
|
*
|
||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function addServiceExtensionParameter($keyword, $value = null)
|
public function addServiceExtensionParameter($keyword, $value = null)
|
||||||
{
|
{
|
||||||
$this->_extparams[$keyword] = $value;
|
$this->_extparams[$keyword] = $value;
|
||||||
}
|
}
|
||||||
|
@ -406,9 +405,8 @@ class Mail_smtp extends Mail {
|
||||||
* @return boolean True if the SMTP connection no longer exists.
|
* @return boolean True if the SMTP connection no longer exists.
|
||||||
*
|
*
|
||||||
* @since 1.1.9
|
* @since 1.1.9
|
||||||
* @access public
|
|
||||||
*/
|
*/
|
||||||
function disconnect()
|
public function disconnect()
|
||||||
{
|
{
|
||||||
/* If we have an SMTP object, disconnect and destroy it. */
|
/* If we have an SMTP object, disconnect and destroy it. */
|
||||||
if (is_object($this->_smtp) && $this->_smtp->disconnect()) {
|
if (is_object($this->_smtp) && $this->_smtp->disconnect()) {
|
||||||
|
@ -428,9 +426,8 @@ class Mail_smtp extends Mail {
|
||||||
* @return string A string describing the current SMTP error.
|
* @return string A string describing the current SMTP error.
|
||||||
*
|
*
|
||||||
* @since 1.1.7
|
* @since 1.1.7
|
||||||
* @access private
|
|
||||||
*/
|
*/
|
||||||
function _error($text, &$error)
|
protected function _error($text, $error)
|
||||||
{
|
{
|
||||||
/* Split the SMTP response into a code and a response string. */
|
/* Split the SMTP response into a code and a response string. */
|
||||||
list($code, $response) = $this->_smtp->getResponse();
|
list($code, $response) = $this->_smtp->getResponse();
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?PHP
|
<?php
|
||||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -6,7 +6,7 @@
|
||||||
*
|
*
|
||||||
* SMTP MX implementation of the PEAR Mail interface. Requires the Net_SMTP class.
|
* SMTP MX implementation of the PEAR Mail interface. Requires the Net_SMTP class.
|
||||||
*
|
*
|
||||||
* PHP versions 4 and 5
|
* PHP version 5
|
||||||
*
|
*
|
||||||
* LICENSE:
|
* LICENSE:
|
||||||
*
|
*
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
* @author gERD Schaufelberger <gerd@php-tools.net>
|
* @author gERD Schaufelberger <gerd@php-tools.net>
|
||||||
* @copyright 2010 gERD Schaufelberger
|
* @copyright 2010 gERD Schaufelberger
|
||||||
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
* @license http://opensource.org/licenses/bsd-license.php New BSD License
|
||||||
* @version CVS: $Id: smtpmx.php 294747 2010-02-08 08:18:33Z clockwerx $
|
* @version CVS: $Id$
|
||||||
* @link http://pear.php.net/package/Mail/
|
* @link http://pear.php.net/package/Mail/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ require_once 'Net/SMTP.php';
|
||||||
* @access public
|
* @access public
|
||||||
* @author gERD Schaufelberger <gerd@php-tools.net>
|
* @author gERD Schaufelberger <gerd@php-tools.net>
|
||||||
* @package Mail
|
* @package Mail
|
||||||
* @version $Revision: 294747 $
|
* @version $Revision$
|
||||||
*/
|
*/
|
||||||
class Mail_smtpmx extends Mail {
|
class Mail_smtpmx extends Mail {
|
||||||
|
|
||||||
|
@ -386,7 +386,7 @@ class Mail_smtpmx extends Mail {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send data
|
// Send data
|
||||||
$res = $this->_smtp->data("$textHeaders\r\n$body");
|
$res = $this->_smtp->data($body, $textHeaders);
|
||||||
if (is_a($res, 'PEAR_Error')) {
|
if (is_a($res, 'PEAR_Error')) {
|
||||||
$info = array('rcpt' => $rcpt);
|
$info = array('rcpt' => $rcpt);
|
||||||
return $this->_raiseError('failed_send_data', $info);
|
return $this->_raiseError('failed_send_data', $info);
|
||||||
|
|
Loading…
Reference in New Issue