diff --git a/data/web/inc/lib/composer.lock b/data/web/inc/lib/composer.lock
index b8f2c262..7199acc9 100644
--- a/data/web/inc/lib/composer.lock
+++ b/data/web/inc/lib/composer.lock
@@ -8,19 +8,20 @@
"packages": [
{
"name": "phpmailer/phpmailer",
- "version": "v5.2.23",
+ "version": "v5.2.25",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
- "reference": "7115df4a6f76281109ebe352900c42403b728bb4"
+ "reference": "2baf20b01690fba8cf720c1ebcf9b988eda50915"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/7115df4a6f76281109ebe352900c42403b728bb4",
- "reference": "7115df4a6f76281109ebe352900c42403b728bb4",
+ "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/2baf20b01690fba8cf720c1ebcf9b988eda50915",
+ "reference": "2baf20b01690fba8cf720c1ebcf9b988eda50915",
"shasum": ""
},
"require": {
+ "ext-ctype": "*",
"php": ">=5.0.0"
},
"require-dev": {
@@ -80,7 +81,7 @@
}
],
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
- "time": "2017-03-15T19:32:56+00:00"
+ "time": "2017-08-28T11:12:07+00:00"
},
{
"name": "robthree/twofactorauth",
diff --git a/data/web/inc/lib/vendor/composer/installed.json b/data/web/inc/lib/vendor/composer/installed.json
index 25c6c914..790d0662 100644
--- a/data/web/inc/lib/vendor/composer/installed.json
+++ b/data/web/inc/lib/vendor/composer/installed.json
@@ -91,20 +91,21 @@
},
{
"name": "phpmailer/phpmailer",
- "version": "v5.2.23",
- "version_normalized": "5.2.23.0",
+ "version": "v5.2.25",
+ "version_normalized": "5.2.25.0",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
- "reference": "7115df4a6f76281109ebe352900c42403b728bb4"
+ "reference": "2baf20b01690fba8cf720c1ebcf9b988eda50915"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/7115df4a6f76281109ebe352900c42403b728bb4",
- "reference": "7115df4a6f76281109ebe352900c42403b728bb4",
+ "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/2baf20b01690fba8cf720c1ebcf9b988eda50915",
+ "reference": "2baf20b01690fba8cf720c1ebcf9b988eda50915",
"shasum": ""
},
"require": {
+ "ext-ctype": "*",
"php": ">=5.0.0"
},
"require-dev": {
@@ -130,7 +131,7 @@
"suggest": {
"league/oauth2-google": "Needed for Google XOAUTH2 authentication"
},
- "time": "2017-03-15T19:32:56+00:00",
+ "time": "2017-08-28T11:12:07+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
diff --git a/data/web/inc/lib/vendor/phpmailer/phpmailer/.github/ISSUE_TEMPLATE.md b/data/web/inc/lib/vendor/phpmailer/phpmailer/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 00000000..97776f1c
--- /dev/null
+++ b/data/web/inc/lib/vendor/phpmailer/phpmailer/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1 @@
+Non-security issues and pull requests are no longer being accepted for the legacy PHPMailer 5.2 branch. Migrate to PHPMailer 6.0 (or later) and report your issue there.
\ No newline at end of file
diff --git a/data/web/inc/lib/vendor/phpmailer/phpmailer/.github/PULL_REQUEST_TEMPLATE.md b/data/web/inc/lib/vendor/phpmailer/phpmailer/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 00000000..97776f1c
--- /dev/null
+++ b/data/web/inc/lib/vendor/phpmailer/phpmailer/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1 @@
+Non-security issues and pull requests are no longer being accepted for the legacy PHPMailer 5.2 branch. Migrate to PHPMailer 6.0 (or later) and report your issue there.
\ No newline at end of file
diff --git a/data/web/inc/lib/vendor/phpmailer/phpmailer/VERSION b/data/web/inc/lib/vendor/phpmailer/phpmailer/VERSION
index 3ace8b4b..f23b9706 100644
--- a/data/web/inc/lib/vendor/phpmailer/phpmailer/VERSION
+++ b/data/web/inc/lib/vendor/phpmailer/phpmailer/VERSION
@@ -1 +1 @@
-5.2.23
+5.2.25
diff --git a/data/web/inc/lib/vendor/phpmailer/phpmailer/class.phpmailer.php b/data/web/inc/lib/vendor/phpmailer/phpmailer/class.phpmailer.php
index 1b31ec14..8042b384 100644
--- a/data/web/inc/lib/vendor/phpmailer/phpmailer/class.phpmailer.php
+++ b/data/web/inc/lib/vendor/phpmailer/phpmailer/class.phpmailer.php
@@ -31,7 +31,7 @@ class PHPMailer
* The PHPMailer Version number.
* @var string
*/
- public $Version = '5.2.23';
+ public $Version = '5.2.25';
/**
* Email priority.
@@ -440,9 +440,9 @@ class PHPMailer
*
* Parameters:
* boolean $result result of the send action
- * string $to email address of the recipient
- * string $cc cc email addresses
- * string $bcc bcc email addresses
+ * array $to email addresses of the recipients
+ * array $cc cc email addresses
+ * array $bcc bcc email addresses
* string $subject the subject
* string $body the email body
* string $from email address of sender
@@ -1622,8 +1622,13 @@ class PHPMailer
foreach ($hosts as $hostentry) {
$hostinfo = array();
- if (!preg_match('/^((ssl|tls):\/\/)*([a-zA-Z0-9\.-]*):?([0-9]*)$/', trim($hostentry), $hostinfo)) {
+ if (!preg_match(
+ '/^((ssl|tls):\/\/)*([a-zA-Z0-9\.-]*|\[[a-fA-F0-9:]+\]):?([0-9]*)$/',
+ trim($hostentry),
+ $hostinfo
+ )) {
// Not a valid host entry
+ $this->edebug('Ignoring invalid host: ' . $hostentry);
continue;
}
// $hostinfo[2]: optional ssl or tls prefix
@@ -1742,6 +1747,7 @@ class PHPMailer
'dk' => 'da',
'no' => 'nb',
'se' => 'sv',
+ 'sr' => 'rs'
);
if (isset($renamed_langcodes[$langcode])) {
@@ -2024,10 +2030,7 @@ class PHPMailer
{
$result = '';
- if ($this->MessageDate == '') {
- $this->MessageDate = self::rfcDate();
- }
- $result .= $this->headerLine('Date', $this->MessageDate);
+ $result .= $this->headerLine('Date', $this->MessageDate == '' ? self::rfcDate() : $this->MessageDate);
// To be created automatically by mail()
if ($this->SingleTo) {
@@ -4033,7 +4036,7 @@ class phpmailerException extends Exception
*/
public function errorMessage()
{
- $errorMsg = '' . $this->getMessage() . "
\n";
+ $errorMsg = '' . htmlspecialchars($this->getMessage()) . "
\n";
return $errorMsg;
}
}
diff --git a/data/web/inc/lib/vendor/phpmailer/phpmailer/class.pop3.php b/data/web/inc/lib/vendor/phpmailer/phpmailer/class.pop3.php
index c464f90c..f2c4e374 100644
--- a/data/web/inc/lib/vendor/phpmailer/phpmailer/class.pop3.php
+++ b/data/web/inc/lib/vendor/phpmailer/phpmailer/class.pop3.php
@@ -34,7 +34,7 @@ class POP3
* @var string
* @access public
*/
- public $Version = '5.2.23';
+ public $Version = '5.2.25';
/**
* Default POP3 port number.
diff --git a/data/web/inc/lib/vendor/phpmailer/phpmailer/class.smtp.php b/data/web/inc/lib/vendor/phpmailer/phpmailer/class.smtp.php
index 01cee820..d8af427e 100644
--- a/data/web/inc/lib/vendor/phpmailer/phpmailer/class.smtp.php
+++ b/data/web/inc/lib/vendor/phpmailer/phpmailer/class.smtp.php
@@ -30,7 +30,7 @@ class SMTP
* The PHPMailer SMTP version number.
* @var string
*/
- const VERSION = '5.2.23';
+ const VERSION = '5.2.25';
/**
* SMTP line break constant.
@@ -81,7 +81,7 @@ class SMTP
* @deprecated Use the `VERSION` constant instead
* @see SMTP::VERSION
*/
- public $Version = '5.2.23';
+ public $Version = '5.2.25';
/**
* SMTP server port number.
@@ -151,9 +151,8 @@ class SMTP
public $Timelimit = 300;
/**
- * @var array patterns to extract smtp transaction id from smtp reply
- * Only first capture group will be use, use non-capturing group to deal with it
- * Extend this class to override this property to fulfil your needs.
+ * @var array Patterns to extract an SMTP transaction id from reply to a DATA command.
+ * The first capture group in each regex will be used as the ID.
*/
protected $smtp_transaction_id_patterns = array(
'exim' => '/[0-9]{3} OK id=(.*)/',
@@ -161,6 +160,12 @@ class SMTP
'postfix' => '/[0-9]{3} 2.0.0 Ok: queued as (.*)/'
);
+ /**
+ * @var string The last transaction ID issued in response to a DATA command,
+ * if one was detected
+ */
+ protected $last_smtp_transaction_id;
+
/**
* The socket for the server connection.
* @var resource
@@ -227,7 +232,7 @@ class SMTP
break;
case 'html':
//Cleans up output a bit for a better looking, HTML-safe output
- echo htmlentities(
+ echo gmdate('Y-m-d H:i:s') . ' ' . htmlentities(
preg_replace('/[\r\n]+/', '', $str),
ENT_QUOTES,
'UTF-8'
@@ -709,6 +714,7 @@ class SMTP
$savetimelimit = $this->Timelimit;
$this->Timelimit = $this->Timelimit * 2;
$result = $this->sendCommand('DATA END', '.', 250);
+ $this->recordLastTransactionID();
//Restore timelimit
$this->Timelimit = $savetimelimit;
return $result;
@@ -989,7 +995,10 @@ class SMTP
public function client_send($data)
{
$this->edebug("CLIENT -> SERVER: $data", self::DEBUG_CLIENT);
- return fwrite($this->smtp_conn, $data);
+ set_error_handler(array($this, 'errorHandler'));
+ $result = fwrite($this->smtp_conn, $data);
+ restore_error_handler();
+ return $result;
}
/**
@@ -1089,8 +1098,10 @@ class SMTP
$this->edebug("SMTP -> get_lines(): \$data is \"$data\"", self::DEBUG_LOWLEVEL);
$this->edebug("SMTP -> get_lines(): \$str is \"$str\"", self::DEBUG_LOWLEVEL);
$data .= $str;
- // If 4th character is a space, we are done reading, break the loop, micro-optimisation over strlen
- if ((isset($str[3]) and $str[3] == ' ')) {
+ // If response is only 3 chars (not valid, but RFC5321 S4.2 says it must be handled),
+ // or 4th character is a space, we are done reading, break the loop,
+ // string array access is a micro-optimisation over strlen
+ if (!isset($str[3]) or (isset($str[3]) and $str[3] == ' ')) {
break;
}
// Timed-out? Log and break
@@ -1226,26 +1237,40 @@ class SMTP
}
/**
- * Will return the ID of the last smtp transaction based on a list of patterns provided
- * in SMTP::$smtp_transaction_id_patterns.
+ * Extract and return the ID of the last SMTP transaction based on
+ * a list of patterns provided in SMTP::$smtp_transaction_id_patterns.
+ * Relies on the host providing the ID in response to a DATA command.
* If no reply has been received yet, it will return null.
- * If no pattern has been matched, it will return false.
+ * If no pattern was matched, it will return false.
* @return bool|null|string
*/
- public function getLastTransactionID()
+ protected function recordLastTransactionID()
{
$reply = $this->getLastReply();
if (empty($reply)) {
- return null;
- }
-
- foreach ($this->smtp_transaction_id_patterns as $smtp_transaction_id_pattern) {
- if (preg_match($smtp_transaction_id_pattern, $reply, $matches)) {
- return $matches[1];
+ $this->last_smtp_transaction_id = null;
+ } else {
+ $this->last_smtp_transaction_id = false;
+ foreach ($this->smtp_transaction_id_patterns as $smtp_transaction_id_pattern) {
+ if (preg_match($smtp_transaction_id_pattern, $reply, $matches)) {
+ $this->last_smtp_transaction_id = $matches[1];
+ }
}
}
- return false;
+ return $this->last_smtp_transaction_id;
+ }
+
+ /**
+ * Get the queue/transaction ID of the last SMTP transaction
+ * If no reply has been received yet, it will return null.
+ * If no pattern was matched, it will return false.
+ * @return bool|null|string
+ * @see recordLastTransactionID()
+ */
+ public function getLastTransactionID()
+ {
+ return $this->last_smtp_transaction_id;
}
}
diff --git a/data/web/inc/lib/vendor/phpmailer/phpmailer/composer.json b/data/web/inc/lib/vendor/phpmailer/phpmailer/composer.json
index f3611470..a0ac2964 100644
--- a/data/web/inc/lib/vendor/phpmailer/phpmailer/composer.json
+++ b/data/web/inc/lib/vendor/phpmailer/phpmailer/composer.json
@@ -20,6 +20,7 @@
}
],
"require": {
+ "ext-ctype": "*",
"php": ">=5.0.0"
},
"require-dev": {
diff --git a/data/web/inc/lib/vendor/phpmailer/phpmailer/examples/code_generator.phps b/data/web/inc/lib/vendor/phpmailer/phpmailer/examples/code_generator.phps
index 23458561..2182663d 100644
--- a/data/web/inc/lib/vendor/phpmailer/phpmailer/examples/code_generator.phps
+++ b/data/web/inc/lib/vendor/phpmailer/phpmailer/examples/code_generator.phps
@@ -58,46 +58,53 @@ class phpmailerAppException extends phpmailerException
$example_code .= "\n\nclass phpmailerAppException extends phpmailerException {}";
$example_code .= "\n\ntry {";
+// Convert a string to its JavaScript representation.
+function JSString($s) {
+ static $from = array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"');
+ static $to = array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\\"');
+ return is_null($s)? 'null': '"' . str_replace($from, $to, "$s") . '"';
+}
+
try {
if (isset($_POST["submit"]) && $_POST['submit'] == "Submit") {
- $to = $_POST['To_Email'];
+ $to = $to_email;
if (!PHPMailer::validateAddress($to)) {
throw new phpmailerAppException("Email address " . $to . " is invalid -- aborting!");
}
- $example_code .= "\n\$to = '{$_POST['To_Email']}';";
+ $example_code .= "\n\$to = '" . addslashes($to_email) . "';";
$example_code .= "\nif(!PHPMailer::validateAddress(\$to)) {";
$example_code .= "\n throw new phpmailerAppException(\"Email address \" . " .
"\$to . \" is invalid -- aborting!\");";
$example_code .= "\n}";
- switch ($_POST['test_type']) {
+ switch ($test_type) {
case 'smtp':
$mail->isSMTP(); // telling the class to use SMTP
- $mail->SMTPDebug = (integer)$_POST['smtp_debug'];
- $mail->Host = $_POST['smtp_server']; // SMTP server
- $mail->Port = (integer)$_POST['smtp_port']; // set the SMTP port
- if ($_POST['smtp_secure']) {
- $mail->SMTPSecure = strtolower($_POST['smtp_secure']);
+ $mail->SMTPDebug = (integer)$smtp_debug;
+ $mail->Host = $smtp_server; // SMTP server
+ $mail->Port = (integer)$smtp_port; // set the SMTP port
+ if ($smtp_secure) {
+ $mail->SMTPSecure = strtolower($smtp_secure);
}
$mail->SMTPAuth = array_key_exists('smtp_authenticate', $_POST); // enable SMTP authentication?
if (array_key_exists('smtp_authenticate', $_POST)) {
- $mail->Username = $_POST['authenticate_username']; // SMTP account username
- $mail->Password = $_POST['authenticate_password']; // SMTP account password
+ $mail->Username = $authenticate_username; // SMTP account username
+ $mail->Password = $authenticate_password; // SMTP account password
}
$example_code .= "\n\$mail->isSMTP();";
- $example_code .= "\n\$mail->SMTPDebug = " . $_POST['smtp_debug'] . ";";
- $example_code .= "\n\$mail->Host = \"" . $_POST['smtp_server'] . "\";";
- $example_code .= "\n\$mail->Port = \"" . $_POST['smtp_port'] . "\";";
- $example_code .= "\n\$mail->SMTPSecure = \"" . strtolower($_POST['smtp_secure']) . "\";";
+ $example_code .= "\n\$mail->SMTPDebug = " . (integer) $smtp_debug . ";";
+ $example_code .= "\n\$mail->Host = \"" . addslashes($smtp_server) . "\";";
+ $example_code .= "\n\$mail->Port = \"" . addslashes($smtp_port) . "\";";
+ $example_code .= "\n\$mail->SMTPSecure = \"" . addslashes(strtolower($smtp_secure)) . "\";";
$example_code .= "\n\$mail->SMTPAuth = " . (array_key_exists(
'smtp_authenticate',
$_POST
) ? 'true' : 'false') . ";";
if (array_key_exists('smtp_authenticate', $_POST)) {
- $example_code .= "\n\$mail->Username = \"" . $_POST['authenticate_username'] . "\";";
- $example_code .= "\n\$mail->Password = \"" . $_POST['authenticate_password'] . "\";";
+ $example_code .= "\n\$mail->Username = \"" . addslashes($authenticate_username) . "\";";
+ $example_code .= "\n\$mail->Password = \"" . addslashes($authenticate_password) . "\";";
}
break;
case 'mail':
@@ -118,59 +125,59 @@ try {
try {
if ($_POST['From_Name'] != '') {
- $mail->addReplyTo($_POST['From_Email'], $_POST['From_Name']);
- $mail->setFrom($_POST['From_Email'], $_POST['From_Name']);
+ $mail->addReplyTo($from_email, $from_name);
+ $mail->setFrom($from_email, $from_name);
$example_code .= "\n\$mail->addReplyTo(\"" .
- $_POST['From_Email'] . "\", \"" . $_POST['From_Name'] . "\");";
+ addslashes($from_email) . "\", \"" . addslashes($from_name) . "\");";
$example_code .= "\n\$mail->setFrom(\"" .
- $_POST['From_Email'] . "\", \"" . $_POST['From_Name'] . "\");";
+ addslashes($from_email) . "\", \"" . addslashes($from_name) . "\");";
} else {
- $mail->addReplyTo($_POST['From_Email']);
- $mail->setFrom($_POST['From_Email'], $_POST['From_Email']);
+ $mail->addReplyTo($from_email);
+ $mail->setFrom($from_email, $from_email);
- $example_code .= "\n\$mail->addReplyTo(\"" . $_POST['From_Email'] . "\");";
+ $example_code .= "\n\$mail->addReplyTo(\"" . addslashes($from_email) . "\");";
$example_code .= "\n\$mail->setFrom(\"" .
- $_POST['From_Email'] . "\", \"" . $_POST['From_Email'] . "\");";
+ addslashes($from_email) . "\", \"" . addslashes($from_email) . "\");";
}
if ($_POST['To_Name'] != '') {
- $mail->addAddress($to, $_POST['To_Name']);
- $example_code .= "\n\$mail->addAddress(\"$to\", \"" . $_POST['To_Name'] . "\");";
+ $mail->addAddress($to, $to_name);
+ $example_code .= "\n\$mail->addAddress(\"$to\", \"" . addslashes($to_name) . "\");";
} else {
$mail->addAddress($to);
$example_code .= "\n\$mail->addAddress(\"$to\");";
}
if ($_POST['bcc_Email'] != '') {
- $indiBCC = explode(" ", $_POST['bcc_Email']);
+ $indiBCC = explode(" ", $bcc_email);
foreach ($indiBCC as $key => $value) {
$mail->addBCC($value);
- $example_code .= "\n\$mail->addBCC(\"$value\");";
+ $example_code .= "\n\$mail->addBCC(\"" . addslashes($value) . "\");";
}
}
if ($_POST['cc_Email'] != '') {
- $indiCC = explode(" ", $_POST['cc_Email']);
+ $indiCC = explode(" ", $cc_Email);
foreach ($indiCC as $key => $value) {
$mail->addCC($value);
- $example_code .= "\n\$mail->addCC(\"$value\");";
+ $example_code .= "\n\$mail->addCC(\"" . addslashes($value) . "\");";
}
}
} catch (phpmailerException $e) { //Catch all kinds of bad addressing
throw new phpmailerAppException($e->getMessage());
}
- $mail->Subject = $_POST['Subject'] . ' (PHPMailer test using ' . strtoupper($_POST['test_type']) . ')';
- $example_code .= "\n\$mail->Subject = \"" . $_POST['Subject'] .
- ' (PHPMailer test using ' . strtoupper($_POST['test_type']) . ')";';
+ $mail->Subject = $subject . ' (PHPMailer test using ' . strtoupper($test_type) . ')';
+ $example_code .= "\n\$mail->Subject = \"" . addslashes($subject) .
+ ' (PHPMailer test using ' . addslashes(strtoupper($test_type)) . ')";';
if ($_POST['Message'] == '') {
$body = file_get_contents('contents.html');
} else {
- $body = $_POST['Message'];
+ $body = $message;
}
- $example_code .= "\n\$body = <<<'EOT'\n" . htmlentities($body) . "\nEOT;";
+ $example_code .= "\n\$body = <<<'EOT'\n$body\nEOT;";
$mail->WordWrap = 78; // set word wrap to the RFC2822 limit
$mail->msgHTML($body, dirname(__FILE__), true); //Create message bodies and embed images
@@ -187,7 +194,7 @@ try {
$example_code .= "\n\ntry {";
$example_code .= "\n \$mail->send();";
$example_code .= "\n \$results_messages[] = \"Message has been sent using " .
- strtoupper($_POST['test_type']) . "\";";
+ addslashes(strtoupper($test_type)) . "\";";
$example_code .= "\n}";
$example_code .= "\ncatch (phpmailerException \$e) {";
$example_code .= "\n throw new phpmailerAppException('Unable to send to: ' . \$to. ': '.\$e->getMessage());";
@@ -195,7 +202,7 @@ try {
try {
$mail->send();
- $results_messages[] = "Message has been sent using " . strtoupper($_POST["test_type"]);
+ $results_messages[] = "Message has been sent using " . strtoupper($test_type);
} catch (phpmailerException $e) {
throw new phpmailerAppException("Unable to send to: " . $to . ': ' . $e->getMessage());
}
@@ -309,22 +316,22 @@ $example_code .= "\n}";
function startAgain() {
var post_params = {
- "From_Name": "",
- "From_Email": "",
- "To_Name": "",
- "To_Email": "",
- "cc_Email": "",
- "bcc_Email": "",
- "Subject": "",
- "Message": "",
- "test_type": "",
- "smtp_debug": "",
- "smtp_server": "",
- "smtp_port": "",
- "smtp_secure": "",
- "smtp_authenticate": "",
- "authenticate_username": "",
- "authenticate_password": ""
+ "From_Name": ,
+ "From_Email": ,
+ "To_Name": ,
+ "To_Email": ,
+ "cc_Email": ,
+ "bcc_Email": ,
+ "Subject": ,
+ "Message": ,
+ "test_type": ,
+ "smtp_debug": ,
+ "smtp_server": ,
+ "smtp_port": ,
+ "smtp_secure": ,
+ "smtp_authenticate": ,
+ "authenticate_username": ,
+ "authenticate_password":
};
var resetForm = document.createElement("form");
@@ -374,7 +381,7 @@ if (isset($_POST["submit"]) && $_POST["submit"] == "Submit") {
echo "
\n";
echo "
Script:\n";
echo "
\n"; - echo $example_code; + echo htmlentities($example_code); echo "\n\n"; echo "\n