git: 070336bc5567 - main - security/mailzu: Add support for php80

From: Muhammad Moinur Rahman <bofh_at_FreeBSD.org>
Date: Wed, 15 Nov 2023 11:54:23 UTC
The branch main has been updated by bofh:

URL: https://cgit.FreeBSD.org/ports/commit/?id=070336bc5567aa8f8e1bdc2c2474890280b17e80

commit 070336bc5567aa8f8e1bdc2c2474890280b17e80
Author:     Krzysztof <ports@bsdserwis.com>
AuthorDate: 2023-11-14 17:09:14 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2023-11-15 11:54:06 +0000

    security/mailzu: Add support for php80
    
    PR:             263614
    Approved by:    submitter is maintainer
---
 security/mailzu/Makefile                           |    2 +-
 security/mailzu/files/patch-config_langs.php       |    4 +-
 security/mailzu/files/patch-lib-DBEngine.class.php |    9 +
 .../mailzu/files/patch-lib_AmavisdEngine.class.php |   11 +
 security/mailzu/files/patch-lib_DBAuth.class.php   |   11 +
 security/mailzu/files/patch-lib_ExchAuth.class.php |   11 +
 security/mailzu/files/patch-lib_IMAPAuth.class.php |   11 +
 .../mailzu/files/patch-lib_LDAPEngine.class.php    |    9 +
 security/mailzu/files/patch-lib_Link.class.php     |   11 +
 .../mailzu/files/patch-lib_MailEngine.class.php    |   11 +
 security/mailzu/files/patch-lib_MailMime.class.php |   27 +-
 .../mailzu/files/patch-lib_PHPMailer.class.php     | 3085 ++++++++++++++++++++
 security/mailzu/files/patch-lib_Pager.class.php    | 1262 ++++++++
 security/mailzu/files/patch-lib_Template.class.php |    9 +
 security/mailzu/files/patch-lib_htmlfilter.php     |  140 +-
 15 files changed, 4603 insertions(+), 10 deletions(-)

diff --git a/security/mailzu/Makefile b/security/mailzu/Makefile
index f1ce3496e73a..c80c527092e2 100644
--- a/security/mailzu/Makefile
+++ b/security/mailzu/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	mailzu
 DISTVERSION=	0.8rc3
-PORTREVISION=	10
+PORTREVISION=	11
 CATEGORIES=	security
 MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}/MailZu%200.8RC3
 PKGNAMESUFFIX=	${PHP_PKGNAMESUFFIX}
diff --git a/security/mailzu/files/patch-config_langs.php b/security/mailzu/files/patch-config_langs.php
index acda9c7f41de..21b04fafea08 100644
--- a/security/mailzu/files/patch-config_langs.php
+++ b/security/mailzu/files/patch-config_langs.php
@@ -6,7 +6,7 @@
  	'it'	=> array('it([-_][[:alpha:]]{2})?|italian', 'it.lang.php', 'it', 'Italiano'),
 -        'pt_BR' => array('pt([-_]br)?|portuguese', 'pt_BR.lang.php', 'pt', 'Portuguese Brazilian')
 +        'pt_BR' => array('pt([-_]br)?|portuguese', 'pt_BR.lang.php', 'pt', 'Portuguese Brazilian'),
-+	'pl'   => array('cs([-_][[:alpha:]]{2})?|polish', 'pl.lang.php', 'pl', 'Polski')
++	'pl'   => array('pl([-_][[:alpha:]]{2})?|polish', 'pl.lang.php', 'pl', 'Polski')
  );
  
  // Language files directory	
@@ -19,7 +19,7 @@
  		for ($i = 0; $i < count($http_accepted); $i++) {
  			foreach ($languages as $lang => $vals) {
 -				if (eregi($vals[0], $http_accepted[$i]))
-+				if (preg_match($vals[0], $http_accepted[$i]))
++				if (preg_match("/".$vals[0]."/", $http_accepted[$i]))
  					return $lang;
  			}
  		}	
diff --git a/security/mailzu/files/patch-lib-DBEngine.class.php b/security/mailzu/files/patch-lib-DBEngine.class.php
index 88c09dd2ed75..b859eca89497 100644
--- a/security/mailzu/files/patch-lib-DBEngine.class.php
+++ b/security/mailzu/files/patch-lib-DBEngine.class.php
@@ -1,5 +1,14 @@
 --- lib/DBEngine.class.php.orig	2007-06-14 19:00:15 UTC
 +++ lib/DBEngine.class.php
+@@ -67,7 +67,7 @@ class DBEngine {
+ 	* DBEngine constructor to initialize object
+ 	* @param none
+ 	*/
+-	function DBEngine() {
++	function __construct() {
+ 		global $conf;
+ 
+ 		$this->dbType = $conf['db']['dbType'];
 @@ -133,35 +133,35 @@ class DBEngine {
  			MAX(stattable.pending) AS pending
  			FROM (
diff --git a/security/mailzu/files/patch-lib_AmavisdEngine.class.php b/security/mailzu/files/patch-lib_AmavisdEngine.class.php
new file mode 100644
index 000000000000..230f813c3942
--- /dev/null
+++ b/security/mailzu/files/patch-lib_AmavisdEngine.class.php
@@ -0,0 +1,11 @@
+--- lib/AmavisdEngine.class.php.orig	2007-06-14 19:00:15 UTC
++++ lib/AmavisdEngine.class.php
+@@ -48,7 +48,7 @@ class AmavisdEngine {
+ 	* $param none
+ 	* $return object Amavisd object
+ 	*/
+-	function AmavisdEngine($host) {
++	function __construct($host) {
+ 
+ 		$this->socket = new Net_Socket();
+ 		$this->port = $GLOBALS['conf']['amavisd']['spam_release_port'];
diff --git a/security/mailzu/files/patch-lib_DBAuth.class.php b/security/mailzu/files/patch-lib_DBAuth.class.php
new file mode 100644
index 000000000000..fa63252d7358
--- /dev/null
+++ b/security/mailzu/files/patch-lib_DBAuth.class.php
@@ -0,0 +1,11 @@
+--- lib/DBAuth.class.php.orig	2007-06-14 19:00:15 UTC
++++ lib/DBAuth.class.php
+@@ -81,7 +81,7 @@ class DBAuth {
+ 	* DBEngine constructor to initialize object
+ 	* @param none
+ 	*/
+-	function DBAuth() {
++	function __construct() {
+ 		global $conf;
+ 
+ 		$this->dbType = $conf['auth']['dbType'];
diff --git a/security/mailzu/files/patch-lib_ExchAuth.class.php b/security/mailzu/files/patch-lib_ExchAuth.class.php
new file mode 100644
index 000000000000..38cfbaad464d
--- /dev/null
+++ b/security/mailzu/files/patch-lib_ExchAuth.class.php
@@ -0,0 +1,11 @@
+--- lib/ExchAuth.class.php.orig	2007-06-14 19:00:15 UTC
++++ lib/ExchAuth.class.php
+@@ -55,7 +55,7 @@ class ExchAuth {
+ 	* @param string $domain
+ 	* @return boolean
+ 	*/
+-	function authUser($username, $password, $domain) {
++	function __construct($username, $password, $domain) {
+ 		
+ 		$fulluser = $domain.'/'.$username;
+ 		$mbox = imap_open('{'.$this->exchHost.'/imap}Inbox', $fulluser, $password);
diff --git a/security/mailzu/files/patch-lib_IMAPAuth.class.php b/security/mailzu/files/patch-lib_IMAPAuth.class.php
new file mode 100644
index 000000000000..db38328ffa02
--- /dev/null
+++ b/security/mailzu/files/patch-lib_IMAPAuth.class.php
@@ -0,0 +1,11 @@
+--- lib/IMAPAuth.class.php.orig	2007-06-14 19:00:15 UTC
++++ lib/IMAPAuth.class.php
+@@ -36,7 +36,7 @@ class IMAPAuth {
+ 	* Constructor to initialize object
+ 	* @param none
+ 	*/
+-	function IMAPAuth() {
++	function __construct() {
+ 		global $conf;
+ 
+ 		$this->imapHosts = $conf['auth']['imap_hosts'];
diff --git a/security/mailzu/files/patch-lib_LDAPEngine.class.php b/security/mailzu/files/patch-lib_LDAPEngine.class.php
index 05783036ec9c..aad40967fa14 100644
--- a/security/mailzu/files/patch-lib_LDAPEngine.class.php
+++ b/security/mailzu/files/patch-lib_LDAPEngine.class.php
@@ -1,5 +1,14 @@
 --- lib/LDAPEngine.class.php.orig	2007-06-14 19:00:15 UTC
 +++ lib/LDAPEngine.class.php
+@@ -93,7 +93,7 @@ class LDAPEngine {
+ 	/**
+ 	* LDAPEngine constructor to initialize object
+ 	*/
+-	function LDAPEngine() {
++	function __construct() {
+ 		global $conf;
+ 
+ 		$this->serverType = strtolower($conf['auth']['serverType']);
 @@ -283,6 +283,7 @@ class LDAPEngine {
       	*/
      	function searchUserDN($searchFilter) {
diff --git a/security/mailzu/files/patch-lib_Link.class.php b/security/mailzu/files/patch-lib_Link.class.php
new file mode 100644
index 000000000000..f7ecebd0d5b5
--- /dev/null
+++ b/security/mailzu/files/patch-lib_Link.class.php
@@ -0,0 +1,11 @@
+--- lib/Link.class.php.orig	2007-06-14 19:00:15 UTC
++++ lib/Link.class.php
+@@ -29,7 +29,7 @@ class Link {
+ 	* @param string $text_on_over text to display in status bar onmouseover
+ 	* @param string $on_over javascript to call onmouseover
+ 	*/
+-	function Link($url=null, $text=null, $class=null, $style=null, $text_on_over=null) {
++	function __construct($url=null, $text=null, $class=null, $style=null, $text_on_over=null) {
+ 		$this->url = $url;
+ 		$this->text = $text;
+ 		$this->_class = $class;
diff --git a/security/mailzu/files/patch-lib_MailEngine.class.php b/security/mailzu/files/patch-lib_MailEngine.class.php
new file mode 100644
index 000000000000..4ad9fcc9cbc0
--- /dev/null
+++ b/security/mailzu/files/patch-lib_MailEngine.class.php
@@ -0,0 +1,11 @@
+--- lib/MailEngine.class.php.orig	2007-06-14 19:00:15 UTC
++++ lib/MailEngine.class.php
+@@ -48,7 +48,7 @@ class MailEngine {
+ 	* $param string The mail addr of the reader
+ 	* $return object MailEngine object
+ 	*/
+-	function MailEngine($mail_id, $recip) {
++	function __construct($mail_id, $recip) {
+ 	  $this->recipient = $recip;
+ 	  $this->getRawContent($mail_id);
+ 	  $this->msg_error = false;
diff --git a/security/mailzu/files/patch-lib_MailMime.class.php b/security/mailzu/files/patch-lib_MailMime.class.php
index b44eb75f73fd..d8c05a9b0ebd 100644
--- a/security/mailzu/files/patch-lib_MailMime.class.php
+++ b/security/mailzu/files/patch-lib_MailMime.class.php
@@ -1,6 +1,24 @@
 --- lib/MailMime.class.php.orig	2007-06-14 19:00:15 UTC
 +++ lib/MailMime.class.php
-@@ -94,8 +94,14 @@ function MsgParseBody($struct) {
+@@ -59,9 +59,15 @@ function MsgParseBody($struct) {
+ 
+         global $filelist;
+         global $errors;
+-        $ctype_p = strtolower(trim($struct->ctype_primary));
+-        $ctype_s = strtolower(trim($struct->ctype_secondary));
+ 
++        if ( is_object( $struct) ) {
++            $ctype_p = strtolower(trim($struct->ctype_primary));
++            $ctype_s = strtolower(trim($struct->ctype_secondary));
++        } else {
++            $ctype_p = $struct;
++            $ctype_s = "";
++        }
++
+         switch ($ctype_p) {
+           case "multipart":
+             switch ($ctype_s) {
+@@ -94,8 +100,14 @@ function MsgParseBody($struct) {
  
            case "text":
              // Do not display attached text types
@@ -17,7 +35,7 @@
                  array_push($filelist, $attachment);
                  break;
              }
-@@ -117,7 +123,9 @@ function MsgParseBody($struct) {
+@@ -117,7 +129,9 @@ function MsgParseBody($struct) {
            default:
              // Save the listed filename or notify the
              // reader that this mail is not displayed completely
@@ -28,7 +46,7 @@
              $attachment ? array_push($filelist, $attachment) : $errors['Unsupported MIME objects present'] = true;
  
          }
-@@ -137,9 +145,9 @@ function FindMultiAlt($parts) {
+@@ -137,9 +151,9 @@ function FindMultiAlt($parts) {
      foreach ($parts as $cur_part) {
        $type = GetCtype($cur_part);
        if ($type == 'multipart/related') {
@@ -41,11 +59,12 @@
        }
        $altCount = count($alt_pref);
        for ($j = $best_view; $j < $altCount; ++$j) {
-@@ -163,7 +171,7 @@ function FindMultiAlt($parts) {
+@@ -163,7 +177,8 @@ function FindMultiAlt($parts) {
  */
  function FindMultiRel($struct) {
    $entities = array();
 -  $type = $struct->d_parameters['type'];
++  $type = "";
 +  if ( isset( $cur_part->d_parameters['type'] )) { $type = $cur_part->d_parameters['type']; }
    // Mozilla bug. Mozilla does not provide the parameter type.
    if (!$type) $type = 'text/html';
diff --git a/security/mailzu/files/patch-lib_PHPMailer.class.php b/security/mailzu/files/patch-lib_PHPMailer.class.php
new file mode 100644
index 000000000000..ae290186e73c
--- /dev/null
+++ b/security/mailzu/files/patch-lib_PHPMailer.class.php
@@ -0,0 +1,3085 @@
+--- lib/PHPMailer.class.php.orig	2007-06-14 19:00:15 UTC
++++ lib/PHPMailer.class.php
+@@ -1,1541 +1,1541 @@
+-<?php
+-////////////////////////////////////////////////////
+-// PHPMailer - PHP email class
+-//
+-// Class for sending email using either
+-// sendmail, PHP mail(), or SMTP.  Methods are
+-// based upon the standard AspEmail(tm) classes.
+-//
+-// Copyright (C) 2001 - 2003  Brent R. Matzelle
+-//
+-// License: LGPL, see LICENSE
+-////////////////////////////////////////////////////
+-
+-/**
+- * PHPMailer - PHP email transport class
+- * @package PHPMailer
+- * @author Brent R. Matzelle
+- * @copyright 2001 - 2003 Brent R. Matzelle
+- */
+-class PHPMailer
+-{
+-    /////////////////////////////////////////////////
+-    // PUBLIC VARIABLES
+-    /////////////////////////////////////////////////
+-
+-    /**
+-     * 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           = "1.72";
+-
+-    /**
+-     * 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          = "";
+-
+-    /////////////////////////////////////////////////
+-    // SMTP VARIABLES
+-    /////////////////////////////////////////////////
+-
+-    /**
+-     *  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 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;
+-
+-    /**#@+
+-     * @access 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              = "\n";
+-    /**#@-*/
+-	
+-		/////////////////////////////////////////////////
+-   	// CONSTRUCTOR
+-   	/////////////////////////////////////////////////
+-   	/**
+-   	* Constructor, just set up language
+-   	* @param none
+-   	* @return void
+-   	*/
+-   	function PHPMailer() {
+-		global $conf;
+-		global $charset;
+-		
+-		$this->CharSet = $charset;
+-		
+-   		$this->SetLanguage();
+-		
+-		$this->Mailer = $conf['app']['emailType'];
+-		
+-		if ($this->Mailer == 'smtp') {									// Set smtp variables
+-			$this->Host = $conf['app']['smtpHost'];
+-			$this->Port = $conf['app']['smtpPort'];
+-		}
+-		
+-		if ($this->Mailer == 'sendmail')								// Set sendmail variables
+-			$this->Sendmail = $conf['app']['sendmailPath']; 
+-		
+-		if ($this->Mailer == 'qmail')									// Set qmail variables
+-			$this->Sendmail = $conf['app']['qmailPath'];
+-   	}
+-    
+-    /////////////////////////////////////////////////
+-    // VARIABLE METHODS
+-    /////////////////////////////////////////////////
+-
+-    /**
+-     * 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";
+-    }
+-
+-
+-    /////////////////////////////////////////////////
+-    // RECIPIENT METHODS
+-    /////////////////////////////////////////////////
+-
+-    /**
+-     * 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;
+-    }
+-
+-
+-    /////////////////////////////////////////////////
+-    // MAIL SENDING METHODS
+-    /////////////////////////////////////////////////
+-
+-    /**
+-     * 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 whether the message is multipart/alternative
+-        if(!empty($this->AltBody))
+-            $this->ContentType = "multipart/alternative";
+-
+-        $this->error_count = 0; // reset errors
+-        $this->SetMessageType();
+-        $header .= $this->CreateHeader();
+-        $body = $this->CreateBody();
+-
+-		// Nick Korbel - 08-21-2005
+-		if (version_compare('4.3.0',phpversion(), '<=') == 1) {
+-			$this->Subject = html_entity_decode($this->Subject, ENT_COMPAT, $this->CharSet);
+-			if ($this->ContentType != "text/html")
+-				$body = html_entity_decode($body, ENT_COMPAT, $this->CharSet);
+-		}
+-
+-        if($body == "") { return false; }
+-
+-        // Choose the mailer
+-        switch($this->Mailer)
+-        {
+-            case "sendmail":
+-                $result = $this->SendmailSend($header, $body);
+-                break;
+-            case "mail":
+-                $result = $this->MailSend($header, $body);
+-                break;
+-            case "smtp":
+-                $result = $this->SmtpSend($header, $body);
+-                break;
+-            default:
+-            $this->SetError($this->Mailer . $this->Lang("mailer_not_supported"));
+-                $result = false;
+-                break;
+-        }
+-
+-        return $result;
+-    }
+-    
+-    /**
+-     * Sends mail using the $Sendmail program.  
+-     * @access private
+-     * @return bool
+-     */
+-    function SendmailSend($header, $body) {
+-        if ($this->Sender != "")
+-            $sendmail = sprintf("%s -oi -f %s -t", $this->Sendmail, $this->Sender);
+-        else
+-            $sendmail = sprintf("%s -oi -t", $this->Sendmail);
+-
+-        if(!@$mail = popen($sendmail, "w"))
+-        {
+-            $this->SetError($this->Lang("execute") . $this->Sendmail);
+-            return false;
+-        }
+-
+-        fputs($mail, $header);
+-        fputs($mail, $body);
+-        
+-        $result = pclose($mail) >> 8 & 0xFF;
+-        if($result != 0)
+-        {
+-            $this->SetError($this->Lang("execute") . $this->Sendmail);
+-            return false;
+-        }
+-
+-        return true;
+-    }
+-
+-    /**
+-     * Sends mail using the PHP mail() function.  
+-     * @access private
+-     * @return bool
+-     */
+-    function MailSend($header, $body) {
+-        $to = "";
+-        for($i = 0; $i < count($this->to); $i++)
+-        {
+-            if($i != 0) { $to .= ", "; }
+-            $to .= $this->to[$i][0];
+-        }
+-
+-        if ($this->Sender != "" && strlen(ini_get("safe_mode"))< 1)
+-        {
+-            $old_from = ini_get("sendmail_from");
+-            ini_set("sendmail_from", $this->Sender);
+-            $params = sprintf("-oi -f %s", $this->Sender);
+-            $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, 
+-                        $header, $params);
+-        }
+-        else
+-            $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, $header);
+-
+-        if (isset($old_from))
+-            ini_set("sendmail_from", $old_from);
+-
+-        if(!$rt)
+-        {
+-            $this->SetError($this->Lang("instantiate"));
+-            return false;
+-        }
+-
+-        return true;
+-    }
+-
+-    /**
+-     * Sends mail via SMTP using PhpSMTP (Author:
+-     * Chris Ryan).  Returns bool.  Returns false if there is a
+-     * bad MAIL FROM, RCPT, or DATA input.
+-     * @access private
+-     * @return bool
+-     */
+-    function SmtpSend($header, $body) {
+-        include_once($this->PluginDir . "Smtp.class.php");
+-        $error = "";
+-        $bad_rcpt = array();
+-
+-        if(!$this->SmtpConnect())
+-            return false;
+-
+-        $smtp_from = ($this->Sender == "") ? $this->From : $this->Sender;
+-        if(!$this->smtp->Mail($smtp_from))
+-        {
+-            $error = $this->Lang("from_failed") . $smtp_from;
+-            $this->SetError($error);
+-            $this->smtp->Reset();
+-            return false;
+-        }
+-
+-        // Attempt to send attach all recipients
+-        for($i = 0; $i < count($this->to); $i++)
+-        {
+-            if(!$this->smtp->Recipient($this->to[$i][0]))
+-                $bad_rcpt[] = $this->to[$i][0];
+-        }
+-        for($i = 0; $i < count($this->cc); $i++)
+-        {
+-            if(!$this->smtp->Recipient($this->cc[$i][0]))
+-                $bad_rcpt[] = $this->cc[$i][0];
+-        }
+-        for($i = 0; $i < count($this->bcc); $i++)
+-        {
+-            if(!$this->smtp->Recipient($this->bcc[$i][0]))
+-                $bad_rcpt[] = $this->bcc[$i][0];
+-        }
+-
+-        if(count($bad_rcpt) > 0) // Create error message
+-        {
+-            for($i = 0; $i < count($bad_rcpt); $i++)
+-            {
+-                if($i != 0) { $error .= ", "; }
+-                $error .= $bad_rcpt[$i];
+-            }
+-            $error = $this->Lang("recipients_failed") . $error;
+-            $this->SetError($error);
+-            $this->smtp->Reset();
+-            return false;
+-        }
+-
+-        if(!$this->smtp->Data($header . $body))
+-        {
+-            $this->SetError($this->Lang("data_not_accepted"));
+-            $this->smtp->Reset();
+-            return false;
+-        }
+-        if($this->SMTPKeepAlive == true)
+-            $this->smtp->Reset();
+-        else
+-            $this->SmtpClose();
+-
+-        return true;
+-    }
+-
+-    /**
+-     * Initiates a connection to an SMTP server.  Returns false if the 
+-     * operation failed.
+-     * @access private
+-     * @return bool
+-     */
+-    function SmtpConnect() {
+-        if($this->smtp == NULL) { $this->smtp = new SMTP(); }
+-
+-        $this->smtp->do_debug = $this->SMTPDebug;
+-        $hosts = explode(";", $this->Host);
+-        $index = 0;
+-        $connection = ($this->smtp->Connected()); 
+-
+-        // Retry while there is no connection
+-        while($index < count($hosts) && $connection == false)
+-        {
+-            if(strstr($hosts[$index], ":"))
+-                list($host, $port) = explode(":", $hosts[$index]);
+-            else
+-            {
+-                $host = $hosts[$index];
+-                $port = $this->Port;
+-            }
+-
+-            if($this->smtp->Connect($host, $port, $this->Timeout))
+-            {
+-                if ($this->Helo != '')
+-                    $this->smtp->Hello($this->Helo);
+-                else
+-                    $this->smtp->Hello($this->ServerHostname());
+-        
+-                if($this->SMTPAuth)
+-                {
+-                    if(!$this->smtp->Authenticate($this->Username, 
+-                                                  $this->Password))
+-                    {
+-                        $this->SetError($this->Lang("authenticate"));
+-                        $this->smtp->Reset();
+-                        $connection = false;
+-                    }
+-                }
+-                $connection = true;
+-            }
+-            $index++;
+-        }
+-        if(!$connection)
+-            $this->SetError($this->Lang("connect_host"));
+-
+-        return $connection;
+-    }
+-
+-    /**
+-     * Closes the active SMTP session if one exists.
+-     * @return void
+-     */
+-    function SmtpClose() {
+-        if($this->smtp != NULL)
+-        {
+-            if($this->smtp->Connected())
+-            {
+-                $this->smtp->Quit();
+-                $this->smtp->Close();
+-            }
+-        }
+-    }
+-
+-    /**
+-     * Sets the language for all class error messages. Always in English.
+-     * @param none
+-     * @access public
+-     * @return bool
+-     */
+-    function SetLanguage() {
+-        /**
+-    	* Only printing errors in english
+-    	*/
+-    	$PHPMAILER_LANG = array();
+-
+-		$PHPMAILER_LANG["provide_address"] = 'You must provide at least one ' .
+-		                                     'recipient email address.';
+-		$PHPMAILER_LANG["mailer_not_supported"] = ' mailer is not supported.';
+-		$PHPMAILER_LANG["execute"] = 'Could not execute: ';
+-		$PHPMAILER_LANG["instantiate"] = 'Could not instantiate mail function.';
+-		$PHPMAILER_LANG["authenticate"] = 'SMTP Error: Could not authenticate.';
+-		$PHPMAILER_LANG["from_failed"] = 'The following From address failed: ';
+-		$PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: The following ' .
+-		                                       'recipients failed: ';
+-		$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data not accepted.';
+-		$PHPMAILER_LANG["connect_host"] = 'SMTP Error: Could not connect to SMTP host.';
+-		$PHPMAILER_LANG["file_access"] = 'Could not access file: ';
+-		$PHPMAILER_LANG["file_open"] = 'File Error: Could not open file: ';
+-		$PHPMAILER_LANG["encoding"] = 'Unknown encoding: ';
+-
+-        $this->language = $PHPMAILER_LANG;
+-
+-        return true;
+-    }
+-
+-    /////////////////////////////////////////////////
+-    // MESSAGE CREATION METHODS
+-    /////////////////////////////////////////////////
+-
+-    /**
+-     * Creates recipient headers.  
+-     * @access private
+-     * @return string
+-     */
+-    function AddrAppend($type, $addr) {
+-        $addr_str = $type . ": ";
+-        $addr_str .= $this->AddrFormat($addr[0]);
+-        if(count($addr) > 1)
+-        {
+-            for($i = 1; $i < count($addr); $i++)
+-                $addr_str .= ", " . $this->AddrFormat($addr[$i]);
+-        }
+-        $addr_str .= $this->LE;
+-
+-        return $addr_str;
+-    }
+-    
+-    /**
+-     * Formats an address correctly. 
+-     * @access private
+-     * @return string
+-     */
+-    function AddrFormat($addr) {
+-        if(empty($addr[1]))
+-            $formatted = $addr[0];
+-        else
+-        {
+-            $formatted = $this->EncodeHeader($addr[1], 'phrase') . " <" . 
+-                         $addr[0] . ">";
+-        }
+-
+-        return $formatted;
+-    }
+-
+-    /**
+-     * Wraps message for use with mailers that do not
+-     * automatically perform wrapping and for quoted-printable.
+-     * Original written by philippe.  
+-     * @access private
+-     * @return string
+-     */
+-    function WrapText($message, $length, $qp_mode = false) {
+-        $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE;
+-
+-        $message = $this->FixEOL($message);
+-        if (substr($message, -1) == $this->LE)
+-            $message = substr($message, 0, -1);
+-
+-        $line = explode($this->LE, $message);
*** 3813 LINES SKIPPED ***