summaryrefslogtreecommitdiff
path: root/pear/Mail.php
diff options
context:
space:
mode:
Diffstat (limited to 'pear/Mail.php')
-rw-r--r--pear/Mail.php176
1 files changed, 0 insertions, 176 deletions
diff --git a/pear/Mail.php b/pear/Mail.php
deleted file mode 100644
index 807568edf7..0000000000
--- a/pear/Mail.php
+++ /dev/null
@@ -1,176 +0,0 @@
-<?php
-//
-// +----------------------------------------------------------------------+
-// | PHP version 4.0 |
-// +----------------------------------------------------------------------+
-// | Copyright (c) 1997-2001 The PHP Group |
-// +----------------------------------------------------------------------+
-// | This source file is subject to version 2.02 of the PHP license, |
-// | that is bundled with this package in the file LICENSE, and is |
-// | available at through the world-wide-web at |
-// | http://www.php.net/license/2_02.txt. |
-// | If you did not receive a copy of the PHP license and are unable to |
-// | obtain it through the world-wide-web, please send a note to |
-// | license@php.net so we can mail you a copy immediately. |
-// +----------------------------------------------------------------------+
-// | Authors: Chuck Hagenbuch <chuck@horde.org> |
-// +----------------------------------------------------------------------+
-
-require_once 'PEAR.php';
-
-/**
- * PEAR's Mail:: interface. Defines the interface for implementing
- * mailers under the PEAR hierarchy, and provides supporting functions
- * useful in multiple mailer backends.
- */
-class Mail extends PEAR {
-
- /**
- * Provides an interface for generating Mail:: objects of various
- * types
- *
- * @param string The kind of Mail:: object to instantiate.
- * @param array The parameters to pass to the Mail:: object.
- * @access public
- */
- function factory($driver, $params = array())
- {
- $driver = strtolower($driver);
- if (@include_once 'Mail/' . $driver . '.php') {
- $class = 'Mail_' . $driver;
- return new $class($params);
- } else {
- return new PEAR_Error('Unable to find class for driver ' . $driver);
- }
- }
-
- /**
- * Implements Mail::send() function using php's built-in mail()
- * command.
- *
- * @param mixed Either a comma-seperated list of recipients
- * (RFC822 compliant), or an array of recipients,
- * each RFC822 valid. This may contain recipients not
- * specified in the headers, for Bcc:, resending
- * messages, etc.
- *
- * @param array The array of headers to send with the mail, in an
- * associative array, where the array key is the
- * header name (ie, 'Subject'), and the array value
- * is the header value (ie, 'test'). The header
- * produced from those values would be 'Subject:
- * test'.
- *
- * @param string The full text of the message body, including any
- * Mime parts, etc.
- *
- * @return mixed Returns true on success, or a PEAR_Error
- * containing a descriptive error message on
- * failure.
- * @access public
- */
- function send($recipients, $headers, $body)
- {
- // if we're passed an array of recipients, implode it.
- if (is_array($recipients)) {
- $recipients = implode(', ', $recipients);
- }
-
- // get the Subject out of the headers array so that we can
- // pass it as a seperate argument to mail().
- $subject = '';
- if (isset($headers['Subject'])) {
- $subject = $headers['Subject'];
- unset($headers['Subject']);
- }
-
- // flatten the headers out.
- list(,$text_headers) = Mail::prepareHeaders($headers);
-
- return mail($recipients, $subject, $body, $text_headers);
- }
-
- /**
- * Take an array of mail headers and return a string containing
- * text usable in sending a message.
- *
- * @param array The array of headers to prepare, in an associative
- * array, where the array key is the header name (ie,
- * 'Subject'), and the array value is the header
- * value (ie, 'test'). The header produced from those
- * values would be 'Subject: test'.
- *
- * @return mixed Returns false if it encounters a bad address,
- * otherwise returns an array containing two
- * elements: Any From: address found in the headers,
- * and the plain text version of the headers.
- * @access protected
- */
- function prepareHeaders($headers)
- {
- // Look out for the From: value to use along the way.
- $text_headers = ''; // text representation of headers
- $from = null;
-
- foreach ($headers as $key => $val) {
- if ($key == 'From') {
- include_once 'Mail/RFC822.php';
-
- $from_arr = Mail_RFC822::parseAddressList($val, 'localhost', false);
- $from = $from_arr[0]->mailbox . '@' . $from_arr[0]->host;
- if (strstr($from, ' ')) {
- // Reject outright envelope From addresses with spaces.
- return false;
- }
- $text_headers .= $key . ': ' . $val . "\n";
- } else if ($key == 'Received') {
- // put Received: headers at the top, since Receieved:
- // after Subject: in the header order is somtimes used
- // as a spam trap.
- $text_headers = $key . ': ' . $val . "\n" . $text_headers;
- } else {
- $text_headers .= $key . ': ' . $val . "\n";
- }
- }
-
- return array($from, $text_headers);
- }
-
- /**
- * Take a set of recipients and parse them, returning an array of
- * bare addresses (forward paths) that can be passed to sendmail
- * or an smtp server with the rcpt to: command.
- *
- * @param mixed Either a comma-seperated list of recipients
- * (RFC822 compliant), or an array of recipients,
- * each RFC822 valid.
- *
- * @return array An array of forward paths (bare addresses).
- * @access protected
- */
- function parseRecipients($recipients)
- {
- include_once 'Mail/RFC822.php';
-
- // if we're passed an array, assume addresses are valid and
- // implode them before parsing.
- if (is_array($recipients)) {
- $recipients = implode(', ', $recipients);
- }
-
- // Parse recipients, leaving out all personal info. This is
- // for smtp recipients, etc. All relevant personal information
- // should already be in the headers.
- $addresses = Mail_RFC822::parseAddressList($recipients, 'localhost', false);
- $recipients = array();
- if (is_array($addresses)) {
- foreach ($addresses as $ob) {
- $recipients[] = $ob->mailbox . '@' . $ob->host;
- }
- }
-
- return $recipients;
- }
-
-}
-?>