From nobody Wed Nov 15 11:54:23 2023 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SVhR34fd3z51SSg; Wed, 15 Nov 2023 11:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SVhR33qCVz4Xm4; Wed, 15 Nov 2023 11:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700049263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LvxUSPilBLdcR7lMJRyB5euiaShnRlqLXa7mdt58Mg8=; b=GY3mL91H/jSWN3wRaeQMasPo7qF78WcMU21PLKHdWHfBpfoNvCTY1lhp6AAKW3ykpgvuwY +qaM8ZVXvKTXayeg0SRACsjV211EeJ0UH6IvTYRVq41x2mABw5pp0D1v6XukxNg+42VzNq 5XQk0KrLLtY0Rct38gQmm6RsIwW2ffFUMuTnvTVmvwoJ6wMdIy3jsfhN/I3GKjIRLxH2pw JoowPsO08CL4n9//suMxaF2c21g1IGUemyjIUiR+fEoqna64KG5Y+o6nqtJQOD/pLoAKnR rmlbzT8l7wewkkC5tsWwCEKYzfg4QqpBCqFwGvhynGJdfAamAECYnSMkRnDbMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700049263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LvxUSPilBLdcR7lMJRyB5euiaShnRlqLXa7mdt58Mg8=; b=I9P7ch6LcbFU43r1Gm57ja6tC7MKquHHdJGIPXwoqueGy1fujxpWjfN1y9X8dJBcalzDp2 F2/ZSQhcNr4Gk1tVRpBD1LnHSHwG7uF+AaD3Nw0iWiemPvEj06lQNL1HRrzFvWBHqrTiGJ rF3id7EpnGS6xGrIRTSfwv/0aNbfDrfJFe2o75JMVCqcZ4QAks/wm4GVFkxACE5kzToX8L yYdS+RLDjcp9C0OYSoQYCsu5gD5VOU/cSCKL9iBnEr2ujhvPSDuQYxMzBE17JdAGzfAD5f V3Z5FgsoBenj5n58tdMUrbjIOvJqSlPE04HlHY4Vrgs1NonbaTO+ISgjFKimwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700049263; a=rsa-sha256; cv=none; b=Pl8sB5N0UrwTg4vI8w+9OXypNLNUrehv/TyTqyKAzneYW0/bs0PFFxvpJ9NJa3pKTBDlo7 fMLoJUyE7SvzXKzdn51T8swrc+56XSpndCDMqVZ7TNQeiTuQ4U8eyfKd2HP0T74OQtqYLO FYmiWwGJSaQ5RrY7I6K1MnyJBj6SdRJKUtJTvbQttk7leX5c5vDVJb3a5gXb6/h8As4U/8 h2huvj3lJbuzIprEYyPSMBUlc4CMhCfj599r85nCI/KUIB4/Xnp51L4MbIvnbB40JX0qH2 KjyJRrvcbia/kPx/bAbur2tTi5R7R09oppW+wcsbpMrpthDr9TNDsU+rl0pWwQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SVhR32kmkz1Nn; Wed, 15 Nov 2023 11:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AFBsNnM042911; Wed, 15 Nov 2023 11:54:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AFBsNjA042908; Wed, 15 Nov 2023 11:54:23 GMT (envelope-from git) Date: Wed, 15 Nov 2023 11:54:23 GMT Message-Id: <202311151154.3AFBsNjA042908@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Muhammad Moinur Rahman Subject: git: 070336bc5567 - main - security/mailzu: Add support for php80 List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bofh X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 070336bc5567aa8f8e1bdc2c2474890280b17e80 Auto-Submitted: auto-generated The branch main has been updated by bofh: URL: https://cgit.FreeBSD.org/ports/commit/?id=070336bc5567aa8f8e1bdc2c2474890280b17e80 commit 070336bc5567aa8f8e1bdc2c2474890280b17e80 Author: Krzysztof AuthorDate: 2023-11-14 17:09:14 +0000 Commit: Muhammad Moinur Rahman 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 @@ +-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 ***