git: 070336bc5567 - main - security/mailzu: Add support for php80
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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 ***