Add analytics
[bus.git] / busui / owa / includes / PHPMailer_v2.0.3 / class.phpmailer.php
blob:a/busui/owa/includes/PHPMailer_v2.0.3/class.phpmailer.php -> blob:b/busui/owa/includes/PHPMailer_v2.0.3/class.phpmailer.php
  <?php
  /*~ class.phpmailer.php
  .---------------------------------------------------------------------------.
  | Software: PHPMailer - PHP email class |
  | Version: 2.0.3 |
  | Contact: via sourceforge.net support pages (also www.codeworxtech.com) |
  | Info: http://phpmailer.sourceforge.net |
  | Support: http://sourceforge.net/projects/phpmailer/ |
  | ------------------------------------------------------------------------- |
  | Author: Andy Prevost (project admininistrator) |
  | Author: Brent R. Matzelle (original founder) |
  | Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved. |
  | Copyright (c) 2001-2003, Brent R. Matzelle |
  | ------------------------------------------------------------------------- |
  | License: Distributed under the Lesser General Public License (LGPL) |
  | http://www.gnu.org/copyleft/lesser.html |
  | This program is distributed in the hope that it will be useful - WITHOUT |
  | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
  | FITNESS FOR A PARTICULAR PURPOSE. |
  | ------------------------------------------------------------------------- |
  | We offer a number of paid services (www.codeworxtech.com): |
  | - Web Hosting on highly optimized fast and secure servers |
  | - Technology Consulting |
  | - Oursourcing (highly qualified programmers and graphic designers) |
  '---------------------------------------------------------------------------'
   
  /**
  * PHPMailer - PHP email transport class
  * @package PHPMailer
  * @author Andy Prevost
  * @copyright 2004 - 2008 Andy Prevost
  */
   
  class PHPMailer {
   
  /////////////////////////////////////////////////
  // PROPERTIES, PUBLIC
  /////////////////////////////////////////////////
   
  /**
  * Email priority (1 = High, 3 = Normal, 5 = low).
  * @var int
  */
  var $Priority = 3;
   
  /**
  * Sets the CharSet of the message.
  * @var string
  */
  var $CharSet = 'iso-8859-1';
   
  /**
  * Sets the Content-type of the message.
  * @var string
  */
  var $ContentType = 'text/plain';
   
  /**
  * Sets the Encoding of the message. Options for this are "8bit",
  * "7bit", "binary", "base64", and "quoted-printable".
  * @var string
  */
  var $Encoding = '8bit';
   
  /**
  * Holds the most recent mailer error message.
  * @var string
  */
  var $ErrorInfo = '';
   
  /**
  * Sets the From email address for the message.
  * @var string
  */
  var $From = 'root@localhost';
   
  /**
  * Sets the From name of the message.
  * @var string
  */
  var $FromName = 'Root User';
   
  /**
  * Sets the Sender email (Return-Path) of the message. If not empty,
  * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
  * @var string
  */
  var $Sender = '';
   
  /**
  * Sets the Subject of the message.
  * @var string
  */
  var $Subject = '';
   
  /**
  * Sets the Body of the message. This can be either an HTML or text body.
  * If HTML then run IsHTML(true).
  * @var string
  */
  var $Body = '';
   
  /**
  * Sets the text-only body of the message. This automatically sets the
  * email to multipart/alternative. This body can be read by mail
  * clients that do not have HTML email capability such as mutt. Clients
  * that can read HTML will view the normal Body.
  * @var string
  */
  var $AltBody = '';
   
  /**
  * Sets word wrapping on the body of the message to a given number of
  * characters.
  * @var int
  */
  var $WordWrap = 0;
   
  /**
  * Method to send mail: ("mail", "sendmail", or "smtp").
  * @var string
  */
  var $Mailer = 'mail';
   
  /**
  * Sets the path of the sendmail program.
  * @var string
  */
  var $Sendmail = '/usr/sbin/sendmail';
   
  /**
  * Path to PHPMailer plugins. This is now only useful if the SMTP class
  * is in a different directory than the PHP include path.
  * @var string
  */
  var $PluginDir = '';
   
  /**
  * Holds PHPMailer version.
  * @var string
  */
  var $Version = "2.0.3";
   
  /**
  * Sets the email address that a reading confirmation will be sent.
  * @var string
  */
  var $ConfirmReadingTo = '';
   
  /**
  * Sets the hostname to use in Message-Id and Received headers
  * and as default HELO string. If empty, the value returned
  * by SERVER_NAME is used or 'localhost.localdomain'.
  * @var string
  */
  var $Hostname = '';
   
  /**
  * Sets the message ID to be used in the Message-Id header.
  * If empty, a unique id will be generated.
  * @var string
  */
  var $MessageID = '';
   
  /////////////////////////////////////////////////
  // PROPERTIES FOR SMTP
  /////////////////////////////////////////////////
   
  /**
  * Sets the SMTP hosts. All hosts must be separated by a
  * semicolon. You can also specify a different port
  * for each host by using this format: [hostname:port]
  * (e.g. "smtp1.example.com:25;smtp2.example.com").
  * Hosts will be tried in order.
  * @var string
  */
  var $Host = 'localhost';
   
  /**
  * Sets the default SMTP server port.
  * @var int
  */
  var $Port = 25;
   
  /**
  * Sets the SMTP HELO of the message (Default is $Hostname).
  * @var string
  */
  var $Helo = '';
   
  /**
  * Sets connection prefix.
  * Options are "", "ssl" or "tls"
  * @var string
  */
  var $SMTPSecure = "";
   
  /**
  * Sets SMTP authentication. Utilizes the Username and Password variables.
  * @var bool
  */
  var $SMTPAuth = false;
   
  /**
  * Sets SMTP username.
  * @var string
  */
  var $Username = '';
   
  /**
  * Sets SMTP password.
  * @var string
  */
  var $Password = '';
   
  /**
  * Sets the SMTP server timeout in seconds. This function will not
  * work with the win32 version.
  * @var int
  */
  var $Timeout = 10;
   
  /**
  * Sets SMTP class debugging on or off.
  * @var bool
  */
  var $SMTPDebug = false;
   
  /**
  * Prevents the SMTP connection from being closed after each mail
  * sending. If this is set to true then to close the connection
  * requires an explicit call to SmtpClose().
  * @var bool
  */
  var $SMTPKeepAlive = false;
   
  /**
  * Provides the ability to have the TO field process individual
  * emails, instead of sending to entire TO addresses
  * @var bool
  */
  var $SingleTo = false;
   
  /////////////////////////////////////////////////
  // PROPERTIES, PRIVATE
  /////////////////////////////////////////////////
   
  var $smtp = NULL;
  var $to = array();
  var $cc = array();
  var $bcc = array();
  var $ReplyTo = array();
  var $attachment = array();
  var $CustomHeader = array();
  var $message_type = '';
  var $boundary = array();
  var $language = array();
  var $error_count = 0;
  var $LE = "\r\n";
  var $sign_cert_file = "";
  var $sign_key_file = "";
  var $sign_key_pass = "";
   
  /////////////////////////////////////////////////
  // METHODS, VARIABLES
  /////////////////////////////////////////////////
   
  /**
  * Sets message type to HTML.
  * @param bool $bool
  * @return void
  */
  function IsHTML($bool) {
  if($bool == true) {
  $this->ContentType = 'text/html';
  } else {
  $this->ContentType = 'text/plain';
  }
  }
   
  /**
  * Sets Mailer to send message using SMTP.
  * @return void
  */
  function IsSMTP() {
  $this->Mailer = 'smtp';
  }
   
  /**
  * Sets Mailer to send message using PHP mail() function.
  * @return void
  */
  function IsMail() {
  $this->Mailer = 'mail';
  }
   
  /**
  * Sets Mailer to send message using the $Sendmail program.
  * @return void
  */
  function IsSendmail() {
  $this->Mailer = 'sendmail';
  }
   
  /**
  * Sets Mailer to send message using the qmail MTA.
  * @return void
  */
  function IsQmail() {
  $this->Sendmail = '/var/qmail/bin/sendmail';
  $this->Mailer = 'sendmail';
  }
   
  /////////////////////////////////////////////////
  // METHODS, RECIPIENTS
  /////////////////////////////////////////////////
   
  /**
  * Adds a "To" address.
  * @param string $address
  * @param string $name
  * @return void
  */
  function AddAddress($address, $name = '') {
  $cur = count($this->to);
  $this->to[$cur][0] = trim($address);
  $this->to[$cur][1] = $name;
  }
   
  /**
  * Adds a "Cc" address. Note: this function works
  * with the SMTP mailer on win32, not with the "mail"
  * mailer.
  * @param string $address
  * @param string $name
  * @return void
  */
  function AddCC($address, $name = '') {
  $cur = count($this->cc);
  $this->cc[$cur][0] = trim($address);
  $this->cc[$cur][1] = $name;
  }
   
  /**
  * Adds a "Bcc" address. Note: this function works
  * with the SMTP mailer on win32, not with the "mail"
  * mailer.
  * @param string $address
  * @param string $name
  * @return void
  */
  function AddBCC($address, $name = '') {
  $cur = count($this->bcc);
  $this->bcc[$cur][0] = trim($address);
  $this->bcc[$cur][1] = $name;
  }
   
  /**
  * Adds a "Reply-To" address.
  * @param string $address
  * @param string $name
  * @return void
  */
  function AddReplyTo($address, $name = '') {
  $cur = count($this->ReplyTo);
  $this->ReplyTo[$cur][0] = trim($address);
  $this->ReplyTo[$cur][1] = $name;
  }
   
  /////////////////////////////////////////////////
  // METHODS, MAIL SENDING
  /////////////////////////////////////////////////
   
  /**
  * Creates message and assigns Mailer. If the message is
  * not sent successfully then it returns false. Use the ErrorInfo
  * variable to view description of the error.
  * @return bool
  */
  function Send() {
  $header = '';
  $body = '';
  $result = true;
   
  if((count($this->to) + count($this->cc) + count($this->bcc)) < 1) {
  $this->SetError($this->Lang('provide_address'));
  return false;
  }
   
  /* Set whet