[Web] Update libs
This commit is contained in:
		
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										134
									
								
								data/web/inc/lib/composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										134
									
								
								data/web/inc/lib/composer.lock
									
									
									
										generated
									
									
									
								
							| @@ -62,35 +62,39 @@ | ||||
|                 "oauth", | ||||
|                 "oauth2" | ||||
|             ], | ||||
|             "support": { | ||||
|                 "issues": "https://github.com/bshaffer/oauth2-server-php/issues", | ||||
|                 "source": "https://github.com/bshaffer/oauth2-server-php/tree/master" | ||||
|             }, | ||||
|             "time": "2018-12-04T00:29:32+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "ddeboer/imap", | ||||
|             "version": "1.10.0", | ||||
|             "version": "1.11.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/ddeboer/imap.git", | ||||
|                 "reference": "fc09dbf6fb9ba7317a95c719e45893efc4fe6bde" | ||||
|                 "reference": "a089dfcb9d177f921eb5dadc8d4144a44dff22ee" | ||||
|             }, | ||||
|             "dist": { | ||||
|                 "type": "zip", | ||||
|                 "url": "https://api.github.com/repos/ddeboer/imap/zipball/fc09dbf6fb9ba7317a95c719e45893efc4fe6bde", | ||||
|                 "reference": "fc09dbf6fb9ba7317a95c719e45893efc4fe6bde", | ||||
|                 "url": "https://api.github.com/repos/ddeboer/imap/zipball/a089dfcb9d177f921eb5dadc8d4144a44dff22ee", | ||||
|                 "reference": "a089dfcb9d177f921eb5dadc8d4144a44dff22ee", | ||||
|                 "shasum": "" | ||||
|             }, | ||||
|             "require": { | ||||
|                 "ext-iconv": "*", | ||||
|                 "ext-imap": "*", | ||||
|                 "ext-mbstring": "*", | ||||
|                 "php": "^7.2" | ||||
|                 "php": "^7.3 || ^8.0" | ||||
|             }, | ||||
|             "require-dev": { | ||||
|                 "friendsofphp/php-cs-fixer": "^2.16", | ||||
|                 "phpstan/phpstan": "^0.12", | ||||
|                 "phpstan/phpstan-phpunit": "^0.12", | ||||
|                 "phpstan/phpstan-strict-rules": "^0.12", | ||||
|                 "phpunit/phpunit": "^8.5", | ||||
|                 "zendframework/zend-mail": "^2.10" | ||||
|                 "friendsofphp/php-cs-fixer": "^2.16.7", | ||||
|                 "laminas/laminas-mail": "^2.12.3", | ||||
|                 "phpstan/phpstan": "^0.12.57", | ||||
|                 "phpstan/phpstan-phpunit": "^0.12.16", | ||||
|                 "phpstan/phpstan-strict-rules": "^0.12.5", | ||||
|                 "phpunit/phpunit": "^9.4.3" | ||||
|             }, | ||||
|             "type": "library", | ||||
|             "autoload": { | ||||
| @@ -122,20 +126,34 @@ | ||||
|                 "imap", | ||||
|                 "mail" | ||||
|             ], | ||||
|             "time": "2020-01-24T08:15:24+00:00" | ||||
|             "support": { | ||||
|                 "issues": "https://github.com/ddeboer/imap/issues", | ||||
|                 "source": "https://github.com/ddeboer/imap/tree/1.11.0" | ||||
|             }, | ||||
|             "funding": [ | ||||
|                 { | ||||
|                     "url": "https://github.com/Slamdunk", | ||||
|                     "type": "github" | ||||
|                 }, | ||||
|                 { | ||||
|                     "url": "https://github.com/ddeboer", | ||||
|                     "type": "github" | ||||
|                 } | ||||
|             ], | ||||
|             "time": "2020-11-30T14:52:49+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "matthiasmullie/minify", | ||||
|             "version": "1.3.63", | ||||
|             "version": "1.3.65", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/matthiasmullie/minify.git", | ||||
|                 "reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117" | ||||
|                 "reference": "227f19062451c55a797e0cc667ef983834e6580c" | ||||
|             }, | ||||
|             "dist": { | ||||
|                 "type": "zip", | ||||
|                 "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/9ba1b459828adc13430f4dd6c49dae4950dc4117", | ||||
|                 "reference": "9ba1b459828adc13430f4dd6c49dae4950dc4117", | ||||
|                 "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/227f19062451c55a797e0cc667ef983834e6580c", | ||||
|                 "reference": "227f19062451c55a797e0cc667ef983834e6580c", | ||||
|                 "shasum": "" | ||||
|             }, | ||||
|             "require": { | ||||
| @@ -182,7 +200,25 @@ | ||||
|                 "minifier", | ||||
|                 "minify" | ||||
|             ], | ||||
|             "time": "2020-01-21T20:21:08+00:00" | ||||
|             "support": { | ||||
|                 "issues": "https://github.com/matthiasmullie/minify/issues", | ||||
|                 "source": "https://github.com/matthiasmullie/minify/tree/1.3.65" | ||||
|             }, | ||||
|             "funding": [ | ||||
|                 { | ||||
|                     "url": "https://github.com/[user1", | ||||
|                     "type": "github" | ||||
|                 }, | ||||
|                 { | ||||
|                     "url": "https://github.com/matthiasmullie] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g.", | ||||
|                     "type": "github" | ||||
|                 }, | ||||
|                 { | ||||
|                     "url": "https://github.com/user2", | ||||
|                     "type": "github" | ||||
|                 } | ||||
|             ], | ||||
|             "time": "2020-12-27T21:43:29+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "matthiasmullie/path-converter", | ||||
| @@ -231,6 +267,10 @@ | ||||
|                 "paths", | ||||
|                 "relative" | ||||
|             ], | ||||
|             "support": { | ||||
|                 "issues": "https://github.com/matthiasmullie/path-converter/issues", | ||||
|                 "source": "https://github.com/matthiasmullie/path-converter/tree/1.1.3" | ||||
|             }, | ||||
|             "time": "2019-02-05T23:41:09+00:00" | ||||
|         }, | ||||
|         { | ||||
| @@ -285,20 +325,20 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "paragonie/random_compat", | ||||
|             "version": "v9.99.99", | ||||
|             "version": "v9.99.100", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/paragonie/random_compat.git", | ||||
|                 "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" | ||||
|                 "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" | ||||
|             }, | ||||
|             "dist": { | ||||
|                 "type": "zip", | ||||
|                 "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", | ||||
|                 "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", | ||||
|                 "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", | ||||
|                 "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", | ||||
|                 "shasum": "" | ||||
|             }, | ||||
|             "require": { | ||||
|                 "php": "^7" | ||||
|                 "php": ">= 7" | ||||
|             }, | ||||
|             "require-dev": { | ||||
|                 "phpunit/phpunit": "4.*|5.*", | ||||
| @@ -326,7 +366,12 @@ | ||||
|                 "pseudorandom", | ||||
|                 "random" | ||||
|             ], | ||||
|             "time": "2018-07-02T15:55:56+00:00" | ||||
|             "support": { | ||||
|                 "email": "info@paragonie.com", | ||||
|                 "issues": "https://github.com/paragonie/random_compat/issues", | ||||
|                 "source": "https://github.com/paragonie/random_compat" | ||||
|             }, | ||||
|             "time": "2020-10-15T08:29:30+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "php-mime-mail-parser/php-mime-mail-parser", | ||||
| @@ -408,31 +453,39 @@ | ||||
|                 "parser", | ||||
|                 "php" | ||||
|             ], | ||||
|             "support": { | ||||
|                 "issues": "https://github.com/php-mime-mail-parser/php-mime-mail-parser/issues", | ||||
|                 "source": "https://github.com/php-mime-mail-parser/php-mime-mail-parser/tree/master" | ||||
|             }, | ||||
|             "time": "2019-09-23T11:57:58+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "phpmailer/phpmailer", | ||||
|             "version": "v6.1.6", | ||||
|             "version": "v6.2.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/PHPMailer/PHPMailer.git", | ||||
|                 "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3" | ||||
|                 "reference": "e38888a75c070304ca5514197d4847a59a5c853f" | ||||
|             }, | ||||
|             "dist": { | ||||
|                 "type": "zip", | ||||
|                 "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3", | ||||
|                 "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3", | ||||
|                 "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e38888a75c070304ca5514197d4847a59a5c853f", | ||||
|                 "reference": "e38888a75c070304ca5514197d4847a59a5c853f", | ||||
|                 "shasum": "" | ||||
|             }, | ||||
|             "require": { | ||||
|                 "ext-ctype": "*", | ||||
|                 "ext-filter": "*", | ||||
|                 "ext-hash": "*", | ||||
|                 "php": ">=5.5.0" | ||||
|             }, | ||||
|             "require-dev": { | ||||
|                 "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", | ||||
|                 "doctrine/annotations": "^1.2", | ||||
|                 "friendsofphp/php-cs-fixer": "^2.2", | ||||
|                 "phpunit/phpunit": "^4.8 || ^5.7" | ||||
|                 "phpcompatibility/php-compatibility": "^9.3.5", | ||||
|                 "roave/security-advisories": "dev-latest", | ||||
|                 "squizlabs/php_codesniffer": "^3.5.6", | ||||
|                 "yoast/phpunit-polyfills": "^0.2.0" | ||||
|             }, | ||||
|             "suggest": { | ||||
|                 "ext-mbstring": "Needed to send email in multibyte encoding charset", | ||||
| @@ -470,13 +523,17 @@ | ||||
|                 } | ||||
|             ], | ||||
|             "description": "PHPMailer is a full-featured email creation and transfer class for PHP", | ||||
|             "support": { | ||||
|                 "issues": "https://github.com/PHPMailer/PHPMailer/issues", | ||||
|                 "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.2.0" | ||||
|             }, | ||||
|             "funding": [ | ||||
|                 { | ||||
|                     "url": "https://github.com/synchro", | ||||
|                     "url": "https://github.com/Synchro", | ||||
|                     "type": "github" | ||||
|                 } | ||||
|             ], | ||||
|             "time": "2020-05-27T12:24:03+00:00" | ||||
|             "time": "2020-11-25T15:24:57+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "robthree/twofactorauth", | ||||
| @@ -527,6 +584,10 @@ | ||||
|                 "php", | ||||
|                 "tfa" | ||||
|             ], | ||||
|             "support": { | ||||
|                 "issues": "https://github.com/RobThree/TwoFactorAuth/issues", | ||||
|                 "source": "https://github.com/RobThree/TwoFactorAuth" | ||||
|             }, | ||||
|             "time": "2020-01-02T19:56:46+00:00" | ||||
|         }, | ||||
|         { | ||||
| @@ -577,6 +638,11 @@ | ||||
|                 "php", | ||||
|                 "text" | ||||
|             ], | ||||
|             "support": { | ||||
|                 "email": "support@jevon.org", | ||||
|                 "issues": "https://github.com/soundasleep/html2text/issues", | ||||
|                 "source": "https://github.com/soundasleep/html2text/tree/master" | ||||
|             }, | ||||
|             "time": "2017-04-19T22:01:50+00:00" | ||||
|         }, | ||||
|         { | ||||
| @@ -614,6 +680,10 @@ | ||||
|             ], | ||||
|             "description": "Library for U2F implementation", | ||||
|             "homepage": "https://developers.yubico.com/php-u2flib-server", | ||||
|             "support": { | ||||
|                 "issues": "https://github.com/Yubico/php-u2flib-server/issues", | ||||
|                 "source": "https://github.com/Yubico/php-u2flib-server/tree/1.0.2" | ||||
|             }, | ||||
|             "time": "2018-09-07T08:16:44+00:00" | ||||
|         } | ||||
|     ], | ||||
| @@ -625,5 +695,5 @@ | ||||
|     "prefer-lowest": false, | ||||
|     "platform": [], | ||||
|     "platform-dev": [], | ||||
|     "plugin-api-version": "1.1.0" | ||||
|     "plugin-api-version": "2.0.0" | ||||
| } | ||||
|   | ||||
| @@ -37,8 +37,8 @@ namespace Composer\Autoload; | ||||
|  * | ||||
|  * @author Fabien Potencier <fabien@symfony.com> | ||||
|  * @author Jordi Boggiano <j.boggiano@seld.be> | ||||
|  * @see    http://www.php-fig.org/psr/psr-0/ | ||||
|  * @see    http://www.php-fig.org/psr/psr-4/ | ||||
|  * @see    https://www.php-fig.org/psr/psr-0/ | ||||
|  * @see    https://www.php-fig.org/psr/psr-4/ | ||||
|  */ | ||||
| class ClassLoader | ||||
| { | ||||
| @@ -60,7 +60,7 @@ class ClassLoader | ||||
|     public function getPrefixes() | ||||
|     { | ||||
|         if (!empty($this->prefixesPsr0)) { | ||||
|             return call_user_func_array('array_merge', $this->prefixesPsr0); | ||||
|             return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); | ||||
|         } | ||||
|  | ||||
|         return array(); | ||||
|   | ||||
							
								
								
									
										332
									
								
								data/web/inc/lib/vendor/composer/InstalledVersions.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										332
									
								
								data/web/inc/lib/vendor/composer/InstalledVersions.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,332 @@ | ||||
| <?php | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| namespace Composer; | ||||
|  | ||||
| use Composer\Semver\VersionParser; | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| class InstalledVersions | ||||
| { | ||||
| private static $installed = array ( | ||||
|   'root' =>  | ||||
|   array ( | ||||
|     'pretty_version' => '1.0.0+no-version-set', | ||||
|     'version' => '1.0.0.0', | ||||
|     'aliases' =>  | ||||
|     array ( | ||||
|     ), | ||||
|     'reference' => NULL, | ||||
|     'name' => '__root__', | ||||
|   ), | ||||
|   'versions' =>  | ||||
|   array ( | ||||
|     '__root__' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.0.0+no-version-set', | ||||
|       'version' => '1.0.0.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => NULL, | ||||
|     ), | ||||
|     'bshaffer/oauth2-server-php' =>  | ||||
|     array ( | ||||
|       'pretty_version' => 'v1.11.1', | ||||
|       'version' => '1.11.1.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '5a0c8000d4763b276919e2106f54eddda6bc50fa', | ||||
|     ), | ||||
|     'ddeboer/imap' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.11.0', | ||||
|       'version' => '1.11.0.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => 'a089dfcb9d177f921eb5dadc8d4144a44dff22ee', | ||||
|     ), | ||||
|     'exorus/php-mime-mail-parser' =>  | ||||
|     array ( | ||||
|       'replaced' =>  | ||||
|       array ( | ||||
|         0 => '*', | ||||
|       ), | ||||
|     ), | ||||
|     'matthiasmullie/minify' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.3.65', | ||||
|       'version' => '1.3.65.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '227f19062451c55a797e0cc667ef983834e6580c', | ||||
|     ), | ||||
|     'matthiasmullie/path-converter' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.1.3', | ||||
|       'version' => '1.1.3.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => 'e7d13b2c7e2f2268e1424aaed02085518afa02d9', | ||||
|     ), | ||||
|     'messaged/php-mime-mail-parser' =>  | ||||
|     array ( | ||||
|       'replaced' =>  | ||||
|       array ( | ||||
|         0 => '*', | ||||
|       ), | ||||
|     ), | ||||
|     'mustangostang/spyc' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '0.6.3', | ||||
|       'version' => '0.6.3.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '4627c838b16550b666d15aeae1e5289dd5b77da0', | ||||
|     ), | ||||
|     'paragonie/random_compat' =>  | ||||
|     array ( | ||||
|       'pretty_version' => 'v9.99.100', | ||||
|       'version' => '9.99.100.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a', | ||||
|     ), | ||||
|     'php-mime-mail-parser/php-mime-mail-parser' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '5.0.5', | ||||
|       'version' => '5.0.5.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '27983433aabeccee832573c3c56e6a4855e57745', | ||||
|     ), | ||||
|     'phpmailer/phpmailer' =>  | ||||
|     array ( | ||||
|       'pretty_version' => 'v6.2.0', | ||||
|       'version' => '6.2.0.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => 'e38888a75c070304ca5514197d4847a59a5c853f', | ||||
|     ), | ||||
|     'robthree/twofactorauth' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.7.0', | ||||
|       'version' => '1.7.0.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '37983bf675c5baca09d19d6705170489d0df0002', | ||||
|     ), | ||||
|     'soundasleep/html2text' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '0.5.0', | ||||
|       'version' => '0.5.0.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => 'cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad', | ||||
|     ), | ||||
|     'yubico/u2flib-server' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.0.2', | ||||
|       'version' => '1.0.2.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '55d813acf68212ad2cadecde07551600d6971939', | ||||
|     ), | ||||
|   ), | ||||
| ); | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| public static function getInstalledPackages() | ||||
| { | ||||
| return array_keys(self::$installed['versions']); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| public static function isInstalled($packageName) | ||||
| { | ||||
| return isset(self::$installed['versions'][$packageName]); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| public static function satisfies(VersionParser $parser, $packageName, $constraint) | ||||
| { | ||||
| $constraint = $parser->parseConstraints($constraint); | ||||
| $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); | ||||
|  | ||||
| return $provided->matches($constraint); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| public static function getVersionRanges($packageName) | ||||
| { | ||||
| if (!isset(self::$installed['versions'][$packageName])) { | ||||
| throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); | ||||
| } | ||||
|  | ||||
| $ranges = array(); | ||||
| if (isset(self::$installed['versions'][$packageName]['pretty_version'])) { | ||||
| $ranges[] = self::$installed['versions'][$packageName]['pretty_version']; | ||||
| } | ||||
| if (array_key_exists('aliases', self::$installed['versions'][$packageName])) { | ||||
| $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']); | ||||
| } | ||||
| if (array_key_exists('replaced', self::$installed['versions'][$packageName])) { | ||||
| $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']); | ||||
| } | ||||
| if (array_key_exists('provided', self::$installed['versions'][$packageName])) { | ||||
| $ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']); | ||||
| } | ||||
|  | ||||
| return implode(' || ', $ranges); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| public static function getVersion($packageName) | ||||
| { | ||||
| if (!isset(self::$installed['versions'][$packageName])) { | ||||
| throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); | ||||
| } | ||||
|  | ||||
| if (!isset(self::$installed['versions'][$packageName]['version'])) { | ||||
| return null; | ||||
| } | ||||
|  | ||||
| return self::$installed['versions'][$packageName]['version']; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| public static function getPrettyVersion($packageName) | ||||
| { | ||||
| if (!isset(self::$installed['versions'][$packageName])) { | ||||
| throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); | ||||
| } | ||||
|  | ||||
| if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) { | ||||
| return null; | ||||
| } | ||||
|  | ||||
| return self::$installed['versions'][$packageName]['pretty_version']; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| public static function getReference($packageName) | ||||
| { | ||||
| if (!isset(self::$installed['versions'][$packageName])) { | ||||
| throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); | ||||
| } | ||||
|  | ||||
| if (!isset(self::$installed['versions'][$packageName]['reference'])) { | ||||
| return null; | ||||
| } | ||||
|  | ||||
| return self::$installed['versions'][$packageName]['reference']; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| public static function getRootPackage() | ||||
| { | ||||
| return self::$installed['root']; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| public static function getRawData() | ||||
| { | ||||
| return self::$installed; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| public static function reload($data) | ||||
| { | ||||
| self::$installed = $data; | ||||
| } | ||||
| } | ||||
| @@ -6,6 +6,7 @@ $vendorDir = dirname(dirname(__FILE__)); | ||||
| $baseDir = dirname($vendorDir); | ||||
|  | ||||
| return array( | ||||
|     'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', | ||||
|     'u2flib_server\\Error' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php', | ||||
|     'u2flib_server\\RegisterRequest' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php', | ||||
|     'u2flib_server\\Registration' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php', | ||||
|   | ||||
| @@ -22,13 +22,15 @@ class ComposerAutoloaderInit873464e4bd965a3168f133248b1b218b | ||||
|             return self::$loader; | ||||
|         } | ||||
|  | ||||
|         require __DIR__ . '/platform_check.php'; | ||||
|  | ||||
|         spl_autoload_register(array('ComposerAutoloaderInit873464e4bd965a3168f133248b1b218b', 'loadClassLoader'), true, true); | ||||
|         self::$loader = $loader = new \Composer\Autoload\ClassLoader(); | ||||
|         spl_autoload_unregister(array('ComposerAutoloaderInit873464e4bd965a3168f133248b1b218b', 'loadClassLoader')); | ||||
|  | ||||
|         $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); | ||||
|         if ($useStaticLoader) { | ||||
|             require_once __DIR__ . '/autoload_static.php'; | ||||
|             require __DIR__ . '/autoload_static.php'; | ||||
|  | ||||
|             call_user_func(\Composer\Autoload\ComposerStaticInit873464e4bd965a3168f133248b1b218b::getInitializer($loader)); | ||||
|         } else { | ||||
|   | ||||
| @@ -77,6 +77,7 @@ class ComposerStaticInit873464e4bd965a3168f133248b1b218b | ||||
|     ); | ||||
|  | ||||
|     public static $classMap = array ( | ||||
|         'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', | ||||
|         'u2flib_server\\Error' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php', | ||||
|         'u2flib_server\\RegisterRequest' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php', | ||||
|         'u2flib_server\\Registration' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php', | ||||
|   | ||||
							
								
								
									
										1290
									
								
								data/web/inc/lib/vendor/composer/installed.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1290
									
								
								data/web/inc/lib/vendor/composer/installed.json
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										137
									
								
								data/web/inc/lib/vendor/composer/installed.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								data/web/inc/lib/vendor/composer/installed.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,137 @@ | ||||
| <?php return array ( | ||||
|   'root' =>  | ||||
|   array ( | ||||
|     'pretty_version' => '1.0.0+no-version-set', | ||||
|     'version' => '1.0.0.0', | ||||
|     'aliases' =>  | ||||
|     array ( | ||||
|     ), | ||||
|     'reference' => NULL, | ||||
|     'name' => '__root__', | ||||
|   ), | ||||
|   'versions' =>  | ||||
|   array ( | ||||
|     '__root__' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.0.0+no-version-set', | ||||
|       'version' => '1.0.0.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => NULL, | ||||
|     ), | ||||
|     'bshaffer/oauth2-server-php' =>  | ||||
|     array ( | ||||
|       'pretty_version' => 'v1.11.1', | ||||
|       'version' => '1.11.1.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '5a0c8000d4763b276919e2106f54eddda6bc50fa', | ||||
|     ), | ||||
|     'ddeboer/imap' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.11.0', | ||||
|       'version' => '1.11.0.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => 'a089dfcb9d177f921eb5dadc8d4144a44dff22ee', | ||||
|     ), | ||||
|     'exorus/php-mime-mail-parser' =>  | ||||
|     array ( | ||||
|       'replaced' =>  | ||||
|       array ( | ||||
|         0 => '*', | ||||
|       ), | ||||
|     ), | ||||
|     'matthiasmullie/minify' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.3.65', | ||||
|       'version' => '1.3.65.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '227f19062451c55a797e0cc667ef983834e6580c', | ||||
|     ), | ||||
|     'matthiasmullie/path-converter' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.1.3', | ||||
|       'version' => '1.1.3.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => 'e7d13b2c7e2f2268e1424aaed02085518afa02d9', | ||||
|     ), | ||||
|     'messaged/php-mime-mail-parser' =>  | ||||
|     array ( | ||||
|       'replaced' =>  | ||||
|       array ( | ||||
|         0 => '*', | ||||
|       ), | ||||
|     ), | ||||
|     'mustangostang/spyc' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '0.6.3', | ||||
|       'version' => '0.6.3.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '4627c838b16550b666d15aeae1e5289dd5b77da0', | ||||
|     ), | ||||
|     'paragonie/random_compat' =>  | ||||
|     array ( | ||||
|       'pretty_version' => 'v9.99.100', | ||||
|       'version' => '9.99.100.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a', | ||||
|     ), | ||||
|     'php-mime-mail-parser/php-mime-mail-parser' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '5.0.5', | ||||
|       'version' => '5.0.5.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '27983433aabeccee832573c3c56e6a4855e57745', | ||||
|     ), | ||||
|     'phpmailer/phpmailer' =>  | ||||
|     array ( | ||||
|       'pretty_version' => 'v6.2.0', | ||||
|       'version' => '6.2.0.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => 'e38888a75c070304ca5514197d4847a59a5c853f', | ||||
|     ), | ||||
|     'robthree/twofactorauth' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.7.0', | ||||
|       'version' => '1.7.0.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '37983bf675c5baca09d19d6705170489d0df0002', | ||||
|     ), | ||||
|     'soundasleep/html2text' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '0.5.0', | ||||
|       'version' => '0.5.0.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => 'cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad', | ||||
|     ), | ||||
|     'yubico/u2flib-server' =>  | ||||
|     array ( | ||||
|       'pretty_version' => '1.0.2', | ||||
|       'version' => '1.0.2.0', | ||||
|       'aliases' =>  | ||||
|       array ( | ||||
|       ), | ||||
|       'reference' => '55d813acf68212ad2cadecde07551600d6971939', | ||||
|     ), | ||||
|   ), | ||||
| ); | ||||
							
								
								
									
										26
									
								
								data/web/inc/lib/vendor/composer/platform_check.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								data/web/inc/lib/vendor/composer/platform_check.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| <?php | ||||
|  | ||||
| // platform_check.php @generated by Composer | ||||
|  | ||||
| $issues = array(); | ||||
|  | ||||
| if (!(PHP_VERSION_ID >= 70300)) { | ||||
|     $issues[] = 'Your Composer dependencies require a PHP version ">= 7.3.0". You are running ' . PHP_VERSION . '.'; | ||||
| } | ||||
|  | ||||
| if ($issues) { | ||||
|     if (!headers_sent()) { | ||||
|         header('HTTP/1.1 500 Internal Server Error'); | ||||
|     } | ||||
|     if (!ini_get('display_errors')) { | ||||
|         if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { | ||||
|             fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); | ||||
|         } elseif (!headers_sent()) { | ||||
|             echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; | ||||
|         } | ||||
|     } | ||||
|     trigger_error( | ||||
|         'Composer detected issues in your platform: ' . implode(' ', $issues), | ||||
|         E_USER_ERROR | ||||
|     ); | ||||
| } | ||||
| @@ -1,5 +1,46 @@ | ||||
| # Changelog | ||||
|  | ||||
| ## [1.11.0](https://github.com/ddeboer/imap/tree/1.11.0) (2020-11-30) | ||||
|  | ||||
| [Full Changelog](https://github.com/ddeboer/imap/compare/1.10.1...1.11.0) | ||||
|  | ||||
| **Implemented enhancements:** | ||||
|  | ||||
| - PHP 8 Compatibility [\#481](https://github.com/ddeboer/imap/issues/481) | ||||
| - \[GA\] PHP 8 compatibility fix [\#483](https://github.com/ddeboer/imap/pull/483) ([Slamdunk](https://github.com/Slamdunk)) | ||||
| - Support PHP 8.0, require PHP 7.3 [\#482](https://github.com/ddeboer/imap/pull/482) ([Slamdunk](https://github.com/Slamdunk)) | ||||
|  | ||||
| **Fixed bugs:** | ||||
|  | ||||
| - Fix: Outlook date format [\#480](https://github.com/ddeboer/imap/pull/480) ([gajosadrian](https://github.com/gajosadrian)) | ||||
|  | ||||
| **Closed issues:** | ||||
|  | ||||
| - Closing Connection [\#479](https://github.com/ddeboer/imap/issues/479) | ||||
| - Problem with charset of message part / DataPartInfo [\#475](https://github.com/ddeboer/imap/issues/475) | ||||
| - Unsupported charset "X-UNKNOWN" [\#425](https://github.com/ddeboer/imap/issues/425) | ||||
|  | ||||
| ## [1.10.1](https://github.com/ddeboer/imap/tree/1.10.1) (2020-08-26) | ||||
|  | ||||
| [Full Changelog](https://github.com/ddeboer/imap/compare/1.10.0...1.10.1) | ||||
|  | ||||
| **Fixed bugs:** | ||||
|  | ||||
| - getThread and getMessageSequence not using with the same id [\#469](https://github.com/ddeboer/imap/issues/469) | ||||
| - imap\_thread: use absolude ids [\#474](https://github.com/ddeboer/imap/pull/474) ([Slamdunk](https://github.com/Slamdunk)) | ||||
|  | ||||
| **Closed issues:** | ||||
|  | ||||
| - How to get a message by Message-ID [\#472](https://github.com/ddeboer/imap/issues/472) | ||||
| - Mail with e-sign [\#467](https://github.com/ddeboer/imap/issues/467) | ||||
| - Duplicate method definition in MessageInterface [\#455](https://github.com/ddeboer/imap/issues/455) | ||||
| - Missed errors in search method [\#444](https://github.com/ddeboer/imap/issues/444) | ||||
|  | ||||
| **Merged pull requests:** | ||||
|  | ||||
| - Subtype not always present [\#473](https://github.com/ddeboer/imap/pull/473) ([Piskvor](https://github.com/Piskvor)) | ||||
| - Improved error handling for message search method [\#445](https://github.com/ddeboer/imap/pull/445) ([ikarol](https://github.com/ikarol)) | ||||
|  | ||||
| ## [1.10.0](https://github.com/ddeboer/imap/tree/1.10.0) (2020-01-24) | ||||
|  | ||||
| [Full Changelog](https://github.com/ddeboer/imap/compare/1.9.0...1.10.0) | ||||
|   | ||||
							
								
								
									
										11
									
								
								data/web/inc/lib/vendor/ddeboer/imap/README.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								data/web/inc/lib/vendor/ddeboer/imap/README.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,12 +1,11 @@ | ||||
| # IMAP library | ||||
|  | ||||
| [](https://travis-ci.org/ddeboer/imap) | ||||
| [](https://scrutinizer-ci.com/g/ddeboer/imap/?branch=master) | ||||
| [](https://scrutinizer-ci.com/g/ddeboer/imap/?branch=master) | ||||
| [](https://packagist.org/packages/ddeboer/imap) | ||||
| [](https://packagist.org/packages/ddeboer/imap) | ||||
| [](https://packagist.org/packages/ddeboer/imap) | ||||
| [](https://packagist.org/packages/ddeboer/imap) | ||||
| [](https://github.com/ddeboer/imap/actions) | ||||
| [](https://codecov.io/gh/ddeboer/imap?branch=master) | ||||
|  | ||||
| A PHP 7.2+ library to read and process e-mails over IMAP. | ||||
| A PHP 7.3+ library to read and process e-mails over IMAP. | ||||
|  | ||||
| This library requires [IMAP](https://secure.php.net/manual/en/book.imap.php), | ||||
| [iconv](https://secure.php.net/manual/en/book.iconv.php) and | ||||
|   | ||||
| @@ -22,18 +22,23 @@ | ||||
|         } | ||||
|     ], | ||||
|     "require": { | ||||
|         "php": "^7.2", | ||||
|         "php": "^7.3 || ^8.0", | ||||
|         "ext-iconv": "*", | ||||
|         "ext-imap": "*", | ||||
|         "ext-mbstring": "*" | ||||
|     }, | ||||
|     "require-dev": { | ||||
|         "friendsofphp/php-cs-fixer": "^2.16", | ||||
|         "phpstan/phpstan": "^0.12", | ||||
|         "phpstan/phpstan-phpunit": "^0.12", | ||||
|         "phpstan/phpstan-strict-rules": "^0.12", | ||||
|         "phpunit/phpunit": "^8.5", | ||||
|         "zendframework/zend-mail": "^2.10" | ||||
|         "friendsofphp/php-cs-fixer": "^2.16.7", | ||||
|         "laminas/laminas-mail": "^2.12.3", | ||||
|         "phpstan/phpstan": "^0.12.57", | ||||
|         "phpstan/phpstan-phpunit": "^0.12.16", | ||||
|         "phpstan/phpstan-strict-rules": "^0.12.5", | ||||
|         "phpunit/phpunit": "^9.4.3" | ||||
|     }, | ||||
|     "config": { | ||||
|         "platform": { | ||||
|             "php": "7.3" | ||||
|         } | ||||
|     }, | ||||
|     "autoload": { | ||||
|         "psr-4": { | ||||
|   | ||||
| @@ -228,6 +228,7 @@ final class Connection implements ConnectionInterface | ||||
|  | ||||
|         foreach ($mailboxesInfo as $mailboxInfo) { | ||||
|             $name                      = \mb_convert_encoding(\str_replace($this->server, '', $mailboxInfo->name), 'UTF-8', 'UTF7-IMAP'); | ||||
|             \assert(\is_string($name)); | ||||
|             $this->mailboxNames[$name] = $mailboxInfo; | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -154,6 +154,10 @@ final class Mailbox implements MailboxInterface | ||||
|         } | ||||
|         $query = $search->toString(); | ||||
|  | ||||
|         if (\PHP_VERSION_ID < 80000) { | ||||
|             $descending = (int) $descending; | ||||
|         } | ||||
|  | ||||
|         // We need to clear the stack to know whether imap_last_error() | ||||
|         // is related to this imap_search | ||||
|         \imap_errors(); | ||||
| @@ -162,7 +166,7 @@ final class Mailbox implements MailboxInterface | ||||
|             $params = [ | ||||
|                 $this->resource->getStream(), | ||||
|                 $sortCriteria, | ||||
|                 $descending ? 1 : 0, | ||||
|                 $descending, | ||||
|                 \SE_UID, | ||||
|                 $query, | ||||
|             ]; | ||||
| @@ -181,11 +185,13 @@ final class Mailbox implements MailboxInterface | ||||
|             } | ||||
|             $messageNumbers = \imap_search(...$params); | ||||
|         } | ||||
|         if (false !== \imap_last_error()) { | ||||
|             // this way all errors occurred during search will be reported | ||||
|             throw new InvalidSearchCriteriaException( | ||||
|                 \sprintf('Invalid search criteria [%s]', $query) | ||||
|             ); | ||||
|         } | ||||
|         if (false === $messageNumbers) { | ||||
|             if (false !== \imap_last_error()) { | ||||
|                 throw new InvalidSearchCriteriaException(\sprintf('Invalid search criteria [%s]', $query)); | ||||
|             } | ||||
|  | ||||
|             // imap_search can also return false | ||||
|             $messageNumbers = []; | ||||
|         } | ||||
| @@ -203,13 +209,14 @@ final class Mailbox implements MailboxInterface | ||||
|         \imap_errors(); | ||||
|  | ||||
|         $overview = \imap_fetch_overview($this->resource->getStream(), $sequence, \FT_UID); | ||||
|         if (false !== \imap_last_error()) { | ||||
|             throw new InvalidSearchCriteriaException( | ||||
|                 \sprintf('Invalid sequence [%s]', $sequence) | ||||
|             ); | ||||
|         } | ||||
|         if (\is_array($overview) && [] !== $overview) { | ||||
|             $messageNumbers = \array_column($overview, 'uid'); | ||||
|         } else { | ||||
|             if (false !== \imap_last_error()) { | ||||
|                 throw new InvalidSearchCriteriaException(\sprintf('Invalid sequence [%s]', $sequence)); | ||||
|             } | ||||
|  | ||||
|             $messageNumbers = []; | ||||
|         } | ||||
|  | ||||
| @@ -264,7 +271,7 @@ final class Mailbox implements MailboxInterface | ||||
|         }); | ||||
|  | ||||
|         /** @var array|false $tree */ | ||||
|         $tree = \imap_thread($this->resource->getStream()); | ||||
|         $tree = \imap_thread($this->resource->getStream(), \SE_UID); | ||||
|  | ||||
|         \restore_error_handler(); | ||||
|  | ||||
|   | ||||
| @@ -109,7 +109,15 @@ final class Message extends Message\AbstractMessage implements MessageInterface | ||||
|         } | ||||
|         $this->messageNumberVerified = true; | ||||
|  | ||||
|         $msgno = null; | ||||
|         \set_error_handler(static function (): bool { | ||||
|             return true; | ||||
|         }); | ||||
|  | ||||
|         $msgno = \imap_msgno($this->resource->getStream(), $messageNumber); | ||||
|  | ||||
|         \restore_error_handler(); | ||||
|  | ||||
|         if (\is_numeric($msgno) && $msgno > 0) { | ||||
|             $this->imapMsgNo = $msgno; | ||||
|  | ||||
| @@ -306,7 +314,7 @@ final class Message extends Message\AbstractMessage implements MessageInterface | ||||
|         // 'deleted' header changed, force to reload headers, would be better to set deleted flag to true on header | ||||
|         $this->clearHeaders(); | ||||
|  | ||||
|         if (!\imap_delete($this->resource->getStream(), $this->getNumber(), \FT_UID)) { | ||||
|         if (!\imap_delete($this->resource->getStream(), (string) $this->getNumber(), \FT_UID)) { | ||||
|             throw new MessageDeleteException(\sprintf('Message "%s" cannot be deleted', $this->getNumber())); | ||||
|         } | ||||
|     } | ||||
| @@ -320,7 +328,7 @@ final class Message extends Message\AbstractMessage implements MessageInterface | ||||
|     { | ||||
|         // 'deleted' header changed, force to reload headers, would be better to set deleted flag to false on header | ||||
|         $this->clearHeaders(); | ||||
|         if (!\imap_undelete($this->resource->getStream(), $this->getNumber(), \FT_UID)) { | ||||
|         if (!\imap_undelete($this->resource->getStream(), (string) $this->getNumber(), \FT_UID)) { | ||||
|             throw new MessageUndeleteException(\sprintf('Message "%s" cannot be undeleted', $this->getNumber())); | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -113,6 +113,7 @@ abstract class AbstractMessage extends AbstractPart | ||||
|         $alteredValue = \str_replace(',', '', $alteredValue); | ||||
|         $alteredValue = (string) \preg_replace('/^[a-zA-Z]+ ?/', '', $alteredValue); | ||||
|         $alteredValue = (string) \preg_replace('/\(.*\)/', '', $alteredValue); | ||||
|         $alteredValue = (string) \preg_replace('/\<.*\>/', '', $alteredValue); | ||||
|         $alteredValue = (string) \preg_replace('/\bUT\b/', 'UTC', $alteredValue); | ||||
|         if (0 === \preg_match('/\d\d:\d\d:\d\d.* [\+\-]\d\d:?\d\d/', $alteredValue)) { | ||||
|             $alteredValue .= ' +0000'; | ||||
|   | ||||
| @@ -471,9 +471,11 @@ abstract class AbstractPart implements PartInterface | ||||
|  | ||||
|         $this->type = self::$typesMap[$this->structure->type] ?? self::TYPE_UNKNOWN; | ||||
|  | ||||
|         // In our context, \ENCOTHER is as useful as an uknown encoding | ||||
|         // In our context, \ENCOTHER is as useful as an unknown encoding | ||||
|         $this->encoding = self::$encodingsMap[$this->structure->encoding] ?? self::ENCODING_UNKNOWN; | ||||
|         $this->subtype  = $this->structure->subtype; | ||||
|         if (isset($this->structure->subtype)) { | ||||
|             $this->subtype = $this->structure->subtype; | ||||
|         } | ||||
|  | ||||
|         if (isset($this->structure->bytes)) { | ||||
|             $this->bytes = $this->structure->bytes; | ||||
|   | ||||
| @@ -310,7 +310,13 @@ final class Transcoder | ||||
|             return true; | ||||
|         }); | ||||
|  | ||||
|         $decodedText = \mb_convert_encoding($text, 'UTF-8', $fromCharset); | ||||
|         $decodedText = ''; | ||||
|  | ||||
|         try { | ||||
|             $decodedText = \mb_convert_encoding($text, 'UTF-8', $fromCharset); | ||||
|         } catch (\Error $error) { | ||||
|             $errorMessage = $error->getMessage(); | ||||
|         } | ||||
|  | ||||
|         \restore_error_handler(); | ||||
|  | ||||
|   | ||||
							
								
								
									
										12
									
								
								data/web/inc/lib/vendor/matthiasmullie/minify/.github/FUNDING.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								data/web/inc/lib/vendor/matthiasmullie/minify/.github/FUNDING.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| # These are supported funding model platforms | ||||
|  | ||||
| github: [matthiasmullie] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] | ||||
| patreon: # Replace with a single Patreon username | ||||
| open_collective: # Replace with a single Open Collective username | ||||
| ko_fi: # Replace with a single Ko-fi username | ||||
| tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel | ||||
| community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry | ||||
| liberapay: # Replace with a single Liberapay username | ||||
| issuehunt: # Replace with a single IssueHunt username | ||||
| otechie: # Replace with a single Otechie username | ||||
| custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] | ||||
| @@ -6,7 +6,7 @@ WORKDIR /var/www | ||||
|  | ||||
| RUN apt-get update | ||||
| RUN apt-get install -y zip unzip zlib1g-dev | ||||
| RUN docker-php-ext-install zip | ||||
| RUN if [[ `php-config --vernum` -ge 73000 ]]; then docker-php-ext-install zip; fi | ||||
| RUN docker-php-ext-install pcntl | ||||
| RUN curl -sS https://getcomposer.org/installer | php | ||||
| RUN mv composer.phar /usr/local/bin/composer | ||||
|   | ||||
| @@ -9,6 +9,21 @@ services: | ||||
|       - ./data:/var/www/data | ||||
|       - ./tests:/var/www/tests | ||||
|       - ./phpunit.xml.dist:/var/www/phpunit.xml.dist | ||||
|   '8.0': | ||||
|     extends: php | ||||
|     build: | ||||
|       args: | ||||
|         version: 8.0-cli | ||||
|   '7.4': | ||||
|     extends: php | ||||
|     build: | ||||
|       args: | ||||
|         version: 7.4-cli | ||||
|   '7.3': | ||||
|     extends: php | ||||
|     build: | ||||
|       args: | ||||
|         version: 7.3-cli | ||||
|   '7.2': | ||||
|     extends: php | ||||
|     build: | ||||
|   | ||||
| @@ -216,7 +216,7 @@ class CSS extends Minify | ||||
|  | ||||
|             // grab referenced file & minify it (which may include importing | ||||
|             // yet other @import statements recursively) | ||||
|             $minifier = new static($importPath); | ||||
|             $minifier = new self($importPath); | ||||
|             $minifier->setMaxImportSize($this->maxImportSize); | ||||
|             $minifier->setImportExtensions($this->importExtensions); | ||||
|             $importContent = $minifier->execute($source, $parents); | ||||
| @@ -307,7 +307,8 @@ class CSS extends Minify | ||||
|              */ | ||||
|             $this->extractStrings(); | ||||
|             $this->stripComments(); | ||||
|             $this->extractCalcs(); | ||||
|             $this->extractMath(); | ||||
|             $this->extractCustomProperties(); | ||||
|             $css = $this->replace($css); | ||||
|  | ||||
|             $css = $this->stripWhitespace($css); | ||||
| @@ -678,19 +679,29 @@ class CSS extends Minify | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Replace all `calc()` occurrences. | ||||
|      * Replace all occurrences of functions that may contain math, where | ||||
|      * whitespace around operators needs to be preserved (e.g. calc, clamp) | ||||
|      */ | ||||
|     protected function extractCalcs() | ||||
|     protected function extractMath() | ||||
|     { | ||||
|         $functions = array('calc', 'clamp', 'min', 'max'); | ||||
|         $pattern = '/('. implode('|', $functions) .')(\(.+?)(?=$|;|})/m'; | ||||
|  | ||||
|         // PHP only supports $this inside anonymous functions since 5.4 | ||||
|         $minifier = $this; | ||||
|         $callback = function ($match) use ($minifier) { | ||||
|             $length = strlen($match[1]); | ||||
|         $callback = function ($match) use ($minifier, $pattern, &$callback) { | ||||
|             $function = $match[1]; | ||||
|             $length = strlen($match[2]); | ||||
|             $expr = ''; | ||||
|             $opened = 0; | ||||
|  | ||||
|             // the regular expression for extracting math has 1 significant problem: | ||||
|             // it can't determine the correct closing parenthesis... | ||||
|             // instead, it'll match a larger portion of code to where it's certain that | ||||
|             // the calc() musts have ended, and we'll figure out which is the correct | ||||
|             // closing parenthesis here, by counting how many have opened | ||||
|             for ($i = 0; $i < $length; $i++) { | ||||
|                 $char = $match[1][$i]; | ||||
|                 $char = $match[2][$i]; | ||||
|                 $expr .= $char; | ||||
|                 if ($char === '(') { | ||||
|                     $opened++; | ||||
| @@ -698,18 +709,41 @@ class CSS extends Minify | ||||
|                     break; | ||||
|                 } | ||||
|             } | ||||
|             $rest = str_replace($expr, '', $match[1]); | ||||
|             $expr = trim(substr($expr, 1, -1)); | ||||
|  | ||||
|             // now that we've figured out where the calc() starts and ends, extract it | ||||
|             $count = count($minifier->extracted); | ||||
|             $placeholder = 'calc('.$count.')'; | ||||
|             $minifier->extracted[$placeholder] = 'calc('.$expr.')'; | ||||
|             $placeholder = 'math('.$count.')'; | ||||
|             $minifier->extracted[$placeholder] = $function.'('.trim(substr($expr, 1, -1)).')'; | ||||
|  | ||||
|             // and since we've captured more code than required, we may have some leftover | ||||
|             // calc() in here too - go recursive on the remaining but of code to go figure | ||||
|             // that out and extract what is needed | ||||
|             $rest = str_replace($function.$expr, '', $match[0]); | ||||
|             $rest = preg_replace_callback($pattern, $callback, $rest); | ||||
|  | ||||
|             return $placeholder.$rest; | ||||
|         }; | ||||
|  | ||||
|         $this->registerPattern('/calc(\(.+?)(?=$|;|}|calc\()/', $callback); | ||||
|         $this->registerPattern('/calc(\(.+?)(?=$|;|}|calc\()/m', $callback); | ||||
|         $this->registerPattern($pattern, $callback); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Replace custom properties, whose values may be used in scenarios where | ||||
|      * we wouldn't want them to be minified (e.g. inside calc) | ||||
|      */ | ||||
|     protected function extractCustomProperties() | ||||
|     { | ||||
|         // PHP only supports $this inside anonymous functions since 5.4 | ||||
|         $minifier = $this; | ||||
|         $this->registerPattern( | ||||
|             '/(?<=^|[;}])(--[^:;{}"\'\s]+)\s*:([^;{}]+)/m', | ||||
|             function ($match) use ($minifier) { | ||||
|                 $placeholder = '--custom-'. count($minifier->extracted) . ':0'; | ||||
|                 $minifier->extracted[$placeholder] = $match[1] .':'. trim($match[2]); | ||||
|                 return $placeholder; | ||||
|  | ||||
|             } | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -22,7 +22,7 @@ | ||||
|     "source":     "https://github.com/paragonie/random_compat" | ||||
|   }, | ||||
|   "require": { | ||||
|     "php": "^7" | ||||
|     "php": ">= 7" | ||||
|   }, | ||||
|   "require-dev": { | ||||
|     "vimeo/psalm": "^1", | ||||
|   | ||||
| @@ -167,15 +167,9 @@ Build status: [](h | ||||
| If this isn't passing, is there something you can do to help? | ||||
|  | ||||
| ## Security | ||||
| Please disclose any vulnerabilities found responsibly - report any security problems found to the maintainers privately. | ||||
| Please disclose any vulnerabilities found responsibly – report security issues to the maintainers privately. | ||||
|  | ||||
| PHPMailer versions prior to 5.2.22 (released January 9th 2017) have a local file disclosure vulnerability, [CVE-2017-5223](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5223). If content passed into `msgHTML()` is sourced from unfiltered user input, relative paths can map to absolute local file paths and added as attachments. Also note that `addAttachment` (just like `file_get_contents`, `passthru`, `unlink`, etc) should not be passed user-sourced params either! Reported by Yongxiang Li of Asiasecurity. | ||||
|  | ||||
| PHPMailer versions prior to 5.2.20 (released December 28th 2016) are vulnerable to [CVE-2016-10045](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10045) a remote code execution vulnerability, responsibly reported by [Dawid Golunski](https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10045-Vuln-Patch-Bypass.html), and patched by Paul Buonopane (@Zenexer). | ||||
|  | ||||
| PHPMailer versions prior to 5.2.18 (released December 2016) are vulnerable to [CVE-2016-10033](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10033) a critical remote code execution vulnerability, responsibly reported by [Dawid Golunski](http://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html). | ||||
|  | ||||
| See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) for more detail on security issues. | ||||
| See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) for details on security issues. | ||||
|  | ||||
| ## Contributing | ||||
| Please submit bug reports, suggestions and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues). | ||||
|   | ||||
| @@ -1 +1 @@ | ||||
| 6.1.6 | ||||
| 6.2.0 | ||||
| @@ -21,26 +21,30 @@ | ||||
|     ], | ||||
|     "funding": [ | ||||
|         { | ||||
|             "url": "https://github.com/synchro", | ||||
|             "url": "https://github.com/Synchro", | ||||
|             "type": "github" | ||||
|         } | ||||
|     ], | ||||
|     "require": { | ||||
|         "php": ">=5.5.0", | ||||
|         "ext-ctype": "*", | ||||
|         "ext-filter": "*" | ||||
|         "ext-filter": "*", | ||||
|         "ext-hash": "*" | ||||
|     }, | ||||
|     "require-dev": { | ||||
|         "friendsofphp/php-cs-fixer": "^2.2", | ||||
|         "phpunit/phpunit": "^4.8 || ^5.7", | ||||
|         "doctrine/annotations": "^1.2" | ||||
|         "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", | ||||
|         "doctrine/annotations": "^1.2", | ||||
|         "phpcompatibility/php-compatibility": "^9.3.5", | ||||
|         "roave/security-advisories": "dev-latest", | ||||
|         "squizlabs/php_codesniffer": "^3.5.6", | ||||
|         "yoast/phpunit-polyfills": "^0.2.0" | ||||
|     }, | ||||
|     "suggest": { | ||||
|         "psr/log": "For optional PSR-3 debug logging", | ||||
|         "league/oauth2-google": "Needed for Google XOAUTH2 authentication", | ||||
|         "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", | ||||
|         "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", | ||||
|         "ext-mbstring": "Needed to send email in multibyte encoding charset", | ||||
|         "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", | ||||
|         "league/oauth2-google": "Needed for Google XOAUTH2 authentication", | ||||
|         "psr/log": "For optional PSR-3 debug logging", | ||||
|         "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", | ||||
|         "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" | ||||
|     }, | ||||
|     "autoload": { | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * PHPMailer - PHP email creation and transport class. | ||||
|  * PHP Version 5.5 | ||||
| @@ -8,7 +9,7 @@ | ||||
|  * @author Jim Jagielski (jimjag) <jimjag@gmail.com> | ||||
|  * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> | ||||
|  * @author Brent R. Matzelle (original founder) | ||||
|  * @copyright 2012 - 2017 Marcus Bointon | ||||
|  * @copyright 2012 - 2020 Marcus Bointon | ||||
|  * @copyright 2010 - 2012 Jim Jagielski | ||||
|  * @copyright 2004 - 2009 Andy Prevost | ||||
|  * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License | ||||
| @@ -16,6 +17,7 @@ | ||||
|  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * Get an OAuth2 token from an OAuth2 provider. | ||||
|  * * Install this script on your server so that it's accessible | ||||
| @@ -44,7 +46,7 @@ use Hayageek\OAuth2\Client\Provider\Yahoo; | ||||
| use Stevenmaguire\OAuth2\Client\Provider\Microsoft; | ||||
|  | ||||
| if (!isset($_GET['code']) && !isset($_GET['provider'])) { | ||||
| ?> | ||||
|     ?> | ||||
| <html> | ||||
| <body>Select Provider:<br/> | ||||
| <a href='?provider=Google'>Google</a><br/> | ||||
| @@ -52,8 +54,8 @@ if (!isset($_GET['code']) && !isset($_GET['provider'])) { | ||||
| <a href='?provider=Microsoft'>Microsoft/Outlook/Hotmail/Live/Office365</a><br/> | ||||
| </body> | ||||
| </html> | ||||
| <?php | ||||
| exit; | ||||
|     <?php | ||||
|     exit; | ||||
| } | ||||
|  | ||||
| require 'vendor/autoload.php'; | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Afrikaans PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Arabic PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Azerbaijani PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Bosnian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
| @@ -23,4 +24,4 @@ $PHPMAILER_LANG['signing']              = 'Greška prilikom prijave: '; | ||||
| $PHPMAILER_LANG['smtp_connect_failed']  = 'Spajanje na SMTP server nije uspjelo.'; | ||||
| $PHPMAILER_LANG['smtp_error']           = 'SMTP greška: '; | ||||
| $PHPMAILER_LANG['variable_set']         = 'Nije moguće postaviti varijablu ili je vratiti nazad: '; | ||||
| $PHPMAILER_LANG['extension_missing']    = 'Nedostaje ekstenzija: '; | ||||
| $PHPMAILER_LANG['extension_missing']    = 'Nedostaje ekstenzija: '; | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Belarusian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Bulgarian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Catalan PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Chinese PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Czech PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,10 +1,11 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Danish PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|  * @author John Sebastian <jms@iwb.dk> | ||||
|  * Rewrite and extension of the work by Mikael Stokkebro <info@stokkebro.dk>  | ||||
|  *   | ||||
|  * Rewrite and extension of the work by Mikael Stokkebro <info@stokkebro.dk> | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| $PHPMAILER_LANG['authenticate']         = 'SMTP fejl: Login mislykkedes.'; | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * German PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
| @@ -15,6 +16,8 @@ $PHPMAILER_LANG['file_open']            = 'Dateifehler: Konnte folgende Datei ni | ||||
| $PHPMAILER_LANG['from_failed']          = 'Die folgende Absenderadresse ist nicht korrekt: '; | ||||
| $PHPMAILER_LANG['instantiate']          = 'Mail-Funktion konnte nicht initialisiert werden.'; | ||||
| $PHPMAILER_LANG['invalid_address']      = 'Die Adresse ist ungültig: '; | ||||
| $PHPMAILER_LANG['invalid_hostentry']    = 'Ungültiger Hosteintrag: '; | ||||
| $PHPMAILER_LANG['invalid_host']         = 'Ungültiger Host: '; | ||||
| $PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.'; | ||||
| $PHPMAILER_LANG['provide_address']      = 'Bitte geben Sie mindestens eine Empfängeradresse an.'; | ||||
| $PHPMAILER_LANG['recipients_failed']    = 'SMTP-Fehler: Die folgenden Empfänger sind nicht korrekt: '; | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Greek PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Esperanto PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Spanish PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Estonian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Persian/Farsi PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Finnish PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Faroese PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * French PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
| @@ -19,6 +20,8 @@ $PHPMAILER_LANG['file_open']            = 'Ouverture du fichier impossible : ' | ||||
| $PHPMAILER_LANG['from_failed']          = 'L\'adresse d\'expéditeur suivante a échoué : '; | ||||
| $PHPMAILER_LANG['instantiate']          = 'Impossible d\'instancier la fonction mail.'; | ||||
| $PHPMAILER_LANG['invalid_address']      = 'L\'adresse courriel n\'est pas valide : '; | ||||
| $PHPMAILER_LANG['invalid_hostentry']    = 'L\'entrée hôte n\'est pas valide : '; | ||||
| $PHPMAILER_LANG['invalid_host']         = 'L\'hôte n\'est pas valide : '; | ||||
| $PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supporté.'; | ||||
| $PHPMAILER_LANG['provide_address']      = 'Vous devez fournir au moins une adresse de destinataire.'; | ||||
| $PHPMAILER_LANG['recipients_failed']    = 'Erreur SMTP : les destinataires suivants sont en erreur : '; | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Galician PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Hebrew PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,10 +1,11 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Hindi PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|  * @author Yash Karanke <mr.karanke@gmail.com> | ||||
|  */ | ||||
|   | ||||
|  | ||||
| $PHPMAILER_LANG['authenticate']         = 'SMTP त्रुटि: प्रामाणिकता की जांच नहीं हो सका। '; | ||||
| $PHPMAILER_LANG['connect_host']         = 'SMTP त्रुटि: SMTP सर्वर से कनेक्ट नहीं हो सका। '; | ||||
| $PHPMAILER_LANG['data_not_accepted']    = 'SMTP त्रुटि: डेटा स्वीकार नहीं किया जाता है। '; | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Croatian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Hungarian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,10 +1,11 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Armenian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|  * @author Hrayr Grigoryan <hrayr@bits.am> | ||||
|  */ | ||||
|   | ||||
|  | ||||
| $PHPMAILER_LANG['authenticate']         = 'SMTP -ի սխալ: չհաջողվեց ստուգել իսկությունը.'; | ||||
| $PHPMAILER_LANG['connect_host']         = 'SMTP -ի սխալ: չհաջողվեց կապ հաստատել SMTP սերվերի հետ.'; | ||||
| $PHPMAILER_LANG['data_not_accepted']    = 'SMTP -ի սխալ: տվյալները ընդունված չեն.'; | ||||
|   | ||||
| @@ -1,9 +1,11 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Indonesian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|  * @author Cecep Prawiro <cecep.prawiro@gmail.com> | ||||
|  * @author @januridp | ||||
|  * @author Ian Mustafa <mail@ianmustafa.com> | ||||
|  */ | ||||
|  | ||||
| $PHPMAILER_LANG['authenticate']         = 'Kesalahan SMTP: Tidak dapat mengotentikasi.'; | ||||
| @@ -11,17 +13,19 @@ $PHPMAILER_LANG['connect_host']         = 'Kesalahan SMTP: Tidak dapat terhubung | ||||
| $PHPMAILER_LANG['data_not_accepted']    = 'Kesalahan SMTP: Data tidak diterima.'; | ||||
| $PHPMAILER_LANG['empty_message']        = 'Isi pesan kosong'; | ||||
| $PHPMAILER_LANG['encoding']             = 'Pengkodean karakter tidak dikenali: '; | ||||
| $PHPMAILER_LANG['execute']              = 'Tidak dapat menjalankan proses : '; | ||||
| $PHPMAILER_LANG['file_access']          = 'Tidak dapat mengakses berkas : '; | ||||
| $PHPMAILER_LANG['file_open']            = 'Kesalahan File: Berkas tidak dapat dibuka : '; | ||||
| $PHPMAILER_LANG['from_failed']          = 'Alamat pengirim berikut mengakibatkan kesalahan : '; | ||||
| $PHPMAILER_LANG['instantiate']          = 'Tidak dapat menginisialisasi fungsi surel'; | ||||
| $PHPMAILER_LANG['invalid_address']      = 'Gagal terkirim, alamat surel tidak benar : '; | ||||
| $PHPMAILER_LANG['provide_address']      = 'Harus disediakan minimal satu alamat tujuan'; | ||||
| $PHPMAILER_LANG['execute']              = 'Tidak dapat menjalankan proses: '; | ||||
| $PHPMAILER_LANG['file_access']          = 'Tidak dapat mengakses berkas: '; | ||||
| $PHPMAILER_LANG['file_open']            = 'Kesalahan Berkas: Berkas tidak dapat dibuka: '; | ||||
| $PHPMAILER_LANG['from_failed']          = 'Alamat pengirim berikut mengakibatkan kesalahan: '; | ||||
| $PHPMAILER_LANG['instantiate']          = 'Tidak dapat menginisialisasi fungsi surel.'; | ||||
| $PHPMAILER_LANG['invalid_address']      = 'Gagal terkirim, alamat surel tidak sesuai: '; | ||||
| $PHPMAILER_LANG['invalid_hostentry']    = 'Gagal terkirim, entri host tidak sesuai: '; | ||||
| $PHPMAILER_LANG['invalid_host']         = 'Gagal terkirim, host tidak sesuai: '; | ||||
| $PHPMAILER_LANG['provide_address']      = 'Harus tersedia minimal satu alamat tujuan'; | ||||
| $PHPMAILER_LANG['mailer_not_supported'] = ' mailer tidak didukung'; | ||||
| $PHPMAILER_LANG['recipients_failed']    = 'Kesalahan SMTP: Alamat tujuan berikut menghasilkan kesalahan : '; | ||||
| $PHPMAILER_LANG['signing']              = 'Kesalahan dalam tanda tangan : '; | ||||
| $PHPMAILER_LANG['recipients_failed']    = 'Kesalahan SMTP: Alamat tujuan berikut menyebabkan kesalahan: '; | ||||
| $PHPMAILER_LANG['signing']              = 'Kesalahan dalam penandatangan SSL: '; | ||||
| $PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() gagal.'; | ||||
| $PHPMAILER_LANG['smtp_error']           = 'Kesalahan pada pelayan SMTP : '; | ||||
| $PHPMAILER_LANG['variable_set']         = 'Tidak dapat mengatur atau mengatur ulang variable : '; | ||||
| $PHPMAILER_LANG['extension_missing']    = 'Ekstensi hilang: '; | ||||
| $PHPMAILER_LANG['smtp_error']           = 'Kesalahan pada pelayan SMTP: '; | ||||
| $PHPMAILER_LANG['variable_set']         = 'Tidak dapat mengatur atau mengatur ulang variabel: '; | ||||
| $PHPMAILER_LANG['extension_missing']    = 'Ekstensi PHP tidak tersedia: '; | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Italian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Japanese PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Georgian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Korean PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Lithuanian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Latvian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,9 +1,11 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Malagasy PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|  * @author Hackinet <piyushjha8164@gmail.com> | ||||
|  */ | ||||
|  | ||||
| $PHPMAILER_LANG['authenticate']         = 'Hadisoana SMTP: Tsy nahomby ny fanamarinana.'; | ||||
| $PHPMAILER_LANG['connect_host']         = 'SMTP Error: Tsy afaka mampifandray amin\'ny mpampiantrano SMTP.'; | ||||
| $PHPMAILER_LANG['data_not_accepted']    = 'SMTP diso: tsy voarakitra ny angona.'; | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Malaysian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Norwegian Bokmål PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Dutch PHPMailer language file: refer to PHPMailer.php for definitive list. | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Polish PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
| @@ -14,7 +15,7 @@ $PHPMAILER_LANG['file_access']          = 'Brak dostępu do pliku: '; | ||||
| $PHPMAILER_LANG['file_open']            = 'Nie można otworzyć pliku: '; | ||||
| $PHPMAILER_LANG['from_failed']          = 'Następujący adres Nadawcy jest nieprawidłowy: '; | ||||
| $PHPMAILER_LANG['instantiate']          = 'Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.'; | ||||
| $PHPMAILER_LANG['invalid_address']      = 'Nie można wysłać wiadomości, '. | ||||
| $PHPMAILER_LANG['invalid_address']      = 'Nie można wysłać wiadomości, ' . | ||||
|     'następujący adres Odbiorcy jest nieprawidłowy: '; | ||||
| $PHPMAILER_LANG['provide_address']      = 'Należy podać prawidłowy adres email Odbiorcy.'; | ||||
| $PHPMAILER_LANG['mailer_not_supported'] = 'Wybrana metoda wysyłki wiadomości nie jest obsługiwana.'; | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Portuguese (European) PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Brazilian Portuguese PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Romanian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Russian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Slovak PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,9 +1,11 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Slovene PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|  * @author Klemen Tušar <techouse@gmail.com> | ||||
|  * @author Filip Š <projects@filips.si> | ||||
|  * @author Blaž Oražem <blaz@orazem.si> | ||||
|  */ | ||||
|  | ||||
| $PHPMAILER_LANG['authenticate']         = 'SMTP napaka: Avtentikacija ni uspela.'; | ||||
| @@ -17,8 +19,10 @@ $PHPMAILER_LANG['file_open']            = 'Ne morem odpreti datoteke: '; | ||||
| $PHPMAILER_LANG['from_failed']          = 'Neveljaven e-naslov pošiljatelja: '; | ||||
| $PHPMAILER_LANG['instantiate']          = 'Ne morem inicializirati mail funkcije.'; | ||||
| $PHPMAILER_LANG['invalid_address']      = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven: '; | ||||
| $PHPMAILER_LANG['invalid_hostentry']    = 'Neveljaven vnos gostitelja: '; | ||||
| $PHPMAILER_LANG['invalid_host']         = 'Neveljaven gostitelj: '; | ||||
| $PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.'; | ||||
| $PHPMAILER_LANG['provide_address']      = 'Prosim vnesite vsaj enega naslovnika.'; | ||||
| $PHPMAILER_LANG['provide_address']      = 'Prosimo, vnesite vsaj enega naslovnika.'; | ||||
| $PHPMAILER_LANG['recipients_failed']    = 'SMTP napaka: Sledeči naslovniki so neveljavni: '; | ||||
| $PHPMAILER_LANG['signing']              = 'Napaka pri podpisovanju: '; | ||||
| $PHPMAILER_LANG['smtp_connect_failed']  = 'Ne morem vzpostaviti povezave s SMTP strežnikom.'; | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Serbian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Swedish PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
| @@ -19,8 +20,8 @@ $PHPMAILER_LANG['invalid_address']      = 'Felaktig adress: '; | ||||
| $PHPMAILER_LANG['provide_address']      = 'Du måste ange minst en mottagares e-postadress.'; | ||||
| $PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.'; | ||||
| $PHPMAILER_LANG['recipients_failed']    = 'SMTP fel: Följande mottagare är felaktig: '; | ||||
| $PHPMAILER_LANG['signing']              = 'Signerings fel: '; | ||||
| $PHPMAILER_LANG['signing']              = 'Signeringsfel: '; | ||||
| $PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() misslyckades.'; | ||||
| $PHPMAILER_LANG['smtp_error']           = 'SMTP server fel: '; | ||||
| $PHPMAILER_LANG['smtp_error']           = 'SMTP serverfel: '; | ||||
| $PHPMAILER_LANG['variable_set']         = 'Kunde inte definiera eller återställa variabel: '; | ||||
| $PHPMAILER_LANG['extension_missing']    = 'Tillägg ej tillgängligt: '; | ||||
|   | ||||
| @@ -1,27 +1,28 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Tagalog PHPMailer language file: refer to English translation for definitive list | ||||
|  * | ||||
|  *   @package PHPMailer | ||||
|  *   @author Adriane Justine Tan <adrianetan12@gmail.com> | ||||
|  *   @author Adriane Justine Tan <eidoriantan@gmail.com> | ||||
|  */ | ||||
|   | ||||
|  | ||||
| $PHPMAILER_LANG['authenticate']         = 'SMTP Error: Hindi mapatotohanan.'; | ||||
| $PHPMAILER_LANG['connect_host']         = 'SMTP Error: Hindi makakonekta sa SMTP host.'; | ||||
| $PHPMAILER_LANG['data_not_accepted']    = 'SMTP Error: Ang datos ay hindi maaaring matatanggap.'; | ||||
| $PHPMAILER_LANG['data_not_accepted']    = 'SMTP Error: Ang datos ay hindi naitanggap.'; | ||||
| $PHPMAILER_LANG['empty_message']        = 'Walang laman ang mensahe'; | ||||
| $PHPMAILER_LANG['encoding']             = 'Hindi alam ang encoding: '; | ||||
| $PHPMAILER_LANG['execute']              = 'Hindi maisasagawa: '; | ||||
| $PHPMAILER_LANG['file_access']          = 'Hindi ma-access ang file: '; | ||||
| $PHPMAILER_LANG['file_open']            = 'Hindi mabuksan ang file: '; | ||||
| $PHPMAILER_LANG['file_open']            = 'File Error: Hindi mabuksan ang file: '; | ||||
| $PHPMAILER_LANG['from_failed']          = 'Ang sumusunod na address ay nabigo: '; | ||||
| $PHPMAILER_LANG['instantiate']          = 'Hindi maaaring magbigay ng institusyon ang mail'; | ||||
| $PHPMAILER_LANG['instantiate']          = 'Hindi maisimulan ang instance ng mail function.'; | ||||
| $PHPMAILER_LANG['invalid_address']      = 'Hindi wasto ang address na naibigay: '; | ||||
| $PHPMAILER_LANG['mailer_not_supported'] = 'Ang mailer ay hindi suportado'; | ||||
| $PHPMAILER_LANG['provide_address']      = 'Kailangan mong magbigay ng kahit isang email address na tatanggap'; | ||||
| $PHPMAILER_LANG['mailer_not_supported'] = 'Ang mailer ay hindi suportado.'; | ||||
| $PHPMAILER_LANG['provide_address']      = 'Kailangan mong magbigay ng kahit isang email address na tatanggap.'; | ||||
| $PHPMAILER_LANG['recipients_failed']    = 'SMTP Error: Ang mga sumusunod na tatanggap ay nabigo: '; | ||||
| $PHPMAILER_LANG['signing']              = 'Hindi ma-sign'; | ||||
| $PHPMAILER_LANG['smtp_connect_failed']  = 'Ang SMTP connect() ay nabigo'; | ||||
| $PHPMAILER_LANG['smtp_error']           = 'Ang server ng SMTP ay nabigo'; | ||||
| $PHPMAILER_LANG['variable_set']         = 'Hindi matatakda ang mga variables: '; | ||||
| $PHPMAILER_LANG['extension_missing']    = 'Nawawala ang extension'; | ||||
| $PHPMAILER_LANG['signing']              = 'Hindi ma-sign: '; | ||||
| $PHPMAILER_LANG['smtp_connect_failed']  = 'Ang SMTP connect() ay nabigo.'; | ||||
| $PHPMAILER_LANG['smtp_error']           = 'Ang server ng SMTP ay nabigo: '; | ||||
| $PHPMAILER_LANG['variable_set']         = 'Hindi matatakda o ma-reset ang mga variables: '; | ||||
| $PHPMAILER_LANG['extension_missing']    = 'Nawawala ang extension: '; | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Turkish PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Ukrainian PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Vietnamese (Tiếng Việt) PHPMailer language file: refer to English translation for definitive list. | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Traditional Chinese PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * Simplified Chinese PHPMailer language file: refer to English translation for definitive list | ||||
|  * @package PHPMailer | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * PHPMailer Exception class. | ||||
|  * PHP Version 5.5. | ||||
| @@ -9,7 +10,7 @@ | ||||
|  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com> | ||||
|  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> | ||||
|  * @author    Brent R. Matzelle (original founder) | ||||
|  * @copyright 2012 - 2017 Marcus Bointon | ||||
|  * @copyright 2012 - 2020 Marcus Bointon | ||||
|  * @copyright 2010 - 2012 Jim Jagielski | ||||
|  * @copyright 2004 - 2009 Andy Prevost | ||||
|  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * PHPMailer - PHP email creation and transport class. | ||||
|  * PHP Version 5.5. | ||||
| @@ -9,7 +10,7 @@ | ||||
|  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com> | ||||
|  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> | ||||
|  * @author    Brent R. Matzelle (original founder) | ||||
|  * @copyright 2012 - 2015 Marcus Bointon | ||||
|  * @copyright 2012 - 2020 Marcus Bointon | ||||
|  * @copyright 2010 - 2012 Jim Jagielski | ||||
|  * @copyright 2004 - 2009 Andy Prevost | ||||
|  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * PHPMailer - PHP email creation and transport class. | ||||
|  * PHP Version 5.5. | ||||
| @@ -9,7 +10,7 @@ | ||||
|  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com> | ||||
|  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> | ||||
|  * @author    Brent R. Matzelle (original founder) | ||||
|  * @copyright 2012 - 2019 Marcus Bointon | ||||
|  * @copyright 2012 - 2020 Marcus Bointon | ||||
|  * @copyright 2010 - 2012 Jim Jagielski | ||||
|  * @copyright 2004 - 2009 Andy Prevost | ||||
|  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License | ||||
| @@ -388,11 +389,11 @@ class PHPMailer | ||||
|      * SMTP class debug output mode. | ||||
|      * Debug output level. | ||||
|      * Options: | ||||
|      * * SMTP::DEBUG_OFF: No output | ||||
|      * * SMTP::DEBUG_CLIENT: Client messages | ||||
|      * * SMTP::DEBUG_SERVER: Client and server messages | ||||
|      * * SMTP::DEBUG_CONNECTION: As SERVER plus connection status | ||||
|      * * SMTP::DEBUG_LOWLEVEL: Noisy, low-level data output, rarely needed | ||||
|      * @see SMTP::DEBUG_OFF: No output | ||||
|      * @see SMTP::DEBUG_CLIENT: Client messages | ||||
|      * @see SMTP::DEBUG_SERVER: Client and server messages | ||||
|      * @see SMTP::DEBUG_CONNECTION: As SERVER plus connection status | ||||
|      * @see SMTP::DEBUG_LOWLEVEL: Noisy, low-level data output, rarely needed | ||||
|      * | ||||
|      * @see SMTP::$do_debug | ||||
|      * | ||||
| @@ -441,6 +442,8 @@ class PHPMailer | ||||
|      * Only supported in `mail` and `sendmail` transports, not in SMTP. | ||||
|      * | ||||
|      * @var bool | ||||
|      * | ||||
|      * @deprecated 6.0.0 PHPMailer isn't a mailing list manager! | ||||
|      */ | ||||
|     public $SingleTo = false; | ||||
|  | ||||
| @@ -745,7 +748,7 @@ class PHPMailer | ||||
|      * | ||||
|      * @var string | ||||
|      */ | ||||
|     const VERSION = '6.1.6'; | ||||
|     const VERSION = '6.2.0'; | ||||
|  | ||||
|     /** | ||||
|      * Error severity: message only, continue processing. | ||||
| @@ -897,6 +900,7 @@ class PHPMailer | ||||
|         switch ($this->Debugoutput) { | ||||
|             case 'error_log': | ||||
|                 //Don't output, just log | ||||
|                 /** @noinspection ForgottenDebugOutputInspection */ | ||||
|                 error_log($str); | ||||
|                 break; | ||||
|             case 'html': | ||||
| @@ -1182,9 +1186,11 @@ class PHPMailer | ||||
|             //Use this built-in parser if it's available | ||||
|             $list = imap_rfc822_parse_adrlist($addrstr, ''); | ||||
|             foreach ($list as $address) { | ||||
|                 if (('.SYNTAX-ERROR.' !== $address->host) && static::validateAddress( | ||||
|                     $address->mailbox . '@' . $address->host | ||||
|                 )) { | ||||
|                 if ( | ||||
|                     ('.SYNTAX-ERROR.' !== $address->host) && static::validateAddress( | ||||
|                         $address->mailbox . '@' . $address->host | ||||
|                     ) | ||||
|                 ) { | ||||
|                     $addresses[] = [ | ||||
|                         'name' => (property_exists($address, 'personal') ? $address->personal : ''), | ||||
|                         'address' => $address->mailbox . '@' . $address->host, | ||||
| @@ -1238,7 +1244,8 @@ class PHPMailer | ||||
|         $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim | ||||
|         // Don't validate now addresses with IDN. Will be done in send(). | ||||
|         $pos = strrpos($address, '@'); | ||||
|         if ((false === $pos) | ||||
|         if ( | ||||
|             (false === $pos) | ||||
|             || ((!$this->has8bitChars(substr($address, ++$pos)) || !static::idnSupported()) | ||||
|             && !static::validateAddress($address)) | ||||
|         ) { | ||||
| @@ -1307,7 +1314,7 @@ class PHPMailer | ||||
|             $patternselect = static::$validator; | ||||
|         } | ||||
|         if (is_callable($patternselect)) { | ||||
|             return $patternselect($address); | ||||
|             return call_user_func($patternselect, $address); | ||||
|         } | ||||
|         //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321 | ||||
|         if (strpos($address, "\n") !== false || strpos($address, "\r") !== false) { | ||||
| @@ -1348,7 +1355,7 @@ class PHPMailer | ||||
|                 /* | ||||
|                  * This is the pattern used in the HTML5 spec for validation of 'email' type form input elements. | ||||
|                  * | ||||
|                  * @see http://www.whatwg.org/specs/web-apps/current-work/#e-mail-state-(type=email) | ||||
|                  * @see https://html.spec.whatwg.org/#e-mail-state-(type=email) | ||||
|                  */ | ||||
|                 return (bool) preg_match( | ||||
|                     '/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}' . | ||||
| @@ -1390,7 +1397,8 @@ class PHPMailer | ||||
|     { | ||||
|         // Verify we have required functions, CharSet, and at-sign. | ||||
|         $pos = strrpos($address, '@'); | ||||
|         if (!empty($this->CharSet) && | ||||
|         if ( | ||||
|             !empty($this->CharSet) && | ||||
|             false !== $pos && | ||||
|             static::idnSupported() | ||||
|         ) { | ||||
| @@ -1452,8 +1460,9 @@ class PHPMailer | ||||
|      */ | ||||
|     public function preSend() | ||||
|     { | ||||
|         if ('smtp' === $this->Mailer | ||||
|             || ('mail' === $this->Mailer && stripos(PHP_OS, 'WIN') === 0) | ||||
|         if ( | ||||
|             'smtp' === $this->Mailer | ||||
|             || ('mail' === $this->Mailer && (PHP_VERSION_ID >= 80000 || stripos(PHP_OS, 'WIN') === 0)) | ||||
|         ) { | ||||
|             //SMTP mandates RFC-compliant line endings | ||||
|             //and it's also used with mail() on Windows | ||||
| @@ -1463,7 +1472,8 @@ class PHPMailer | ||||
|             static::setLE(PHP_EOL); | ||||
|         } | ||||
|         //Check for buggy PHP versions that add a header with an incorrect line break | ||||
|         if ('mail' === $this->Mailer | ||||
|         if ( | ||||
|             'mail' === $this->Mailer | ||||
|             && ((PHP_VERSION_ID >= 70000 && PHP_VERSION_ID < 70017) | ||||
|                 || (PHP_VERSION_ID >= 70100 && PHP_VERSION_ID < 70103)) | ||||
|             && ini_get('mail.add_x_header') === '1' | ||||
| @@ -1550,7 +1560,8 @@ class PHPMailer | ||||
|             } | ||||
|  | ||||
|             // Sign with DKIM if enabled | ||||
|             if (!empty($this->DKIM_domain) | ||||
|             if ( | ||||
|                 !empty($this->DKIM_domain) | ||||
|                 && !empty($this->DKIM_selector) | ||||
|                 && (!empty($this->DKIM_private_string) | ||||
|                     || (!empty($this->DKIM_private) | ||||
| @@ -1607,6 +1618,9 @@ class PHPMailer | ||||
|                     return $this->mailSend($this->MIMEHeader, $this->MIMEBody); | ||||
|             } | ||||
|         } catch (Exception $exc) { | ||||
|             if ($this->Mailer === 'smtp' && $this->SMTPKeepAlive == true) { | ||||
|                 $this->smtp->reset(); | ||||
|             } | ||||
|             $this->setError($exc->getMessage()); | ||||
|             $this->edebug($exc->getMessage()); | ||||
|             if ($this->exceptions) { | ||||
| @@ -1711,7 +1725,8 @@ class PHPMailer | ||||
|     protected static function isShellSafe($string) | ||||
|     { | ||||
|         // Future-proof | ||||
|         if (escapeshellcmd($string) !== $string | ||||
|         if ( | ||||
|             escapeshellcmd($string) !== $string | ||||
|             || !in_array(escapeshellarg($string), ["'$string'", "\"$string\""]) | ||||
|         ) { | ||||
|             return false; | ||||
| @@ -1747,6 +1762,23 @@ class PHPMailer | ||||
|         return !preg_match('#^[a-z]+://#i', $path); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Check whether a file path is safe, accessible, and readable. | ||||
|      * | ||||
|      * @param string $path A relative or absolute path to a file | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
|     protected static function fileIsAccessible($path) | ||||
|     { | ||||
|         $readable = file_exists($path); | ||||
|         //If not a UNC path (expected to start with \\), check read permission, see #2069 | ||||
|         if (strpos($path, '\\\\') !== 0) { | ||||
|             $readable = $readable && is_readable($path); | ||||
|         } | ||||
|         return static::isPermittedPath($path) && $readable; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Send mail using the PHP mail() function. | ||||
|      * | ||||
| @@ -1878,7 +1910,7 @@ class PHPMailer | ||||
|                     $isSent = true; | ||||
|                 } | ||||
|  | ||||
|                 $callbacks[] = ['issent'=>$isSent, 'to'=>$to[0]]; | ||||
|                 $callbacks[] = ['issent' => $isSent, 'to' => $to[0]]; | ||||
|             } | ||||
|         } | ||||
|  | ||||
| @@ -1958,11 +1990,13 @@ class PHPMailer | ||||
|  | ||||
|         foreach ($hosts as $hostentry) { | ||||
|             $hostinfo = []; | ||||
|             if (!preg_match( | ||||
|                 '/^(?:(ssl|tls):\/\/)?(.+?)(?::(\d+))?$/', | ||||
|                 trim($hostentry), | ||||
|                 $hostinfo | ||||
|             )) { | ||||
|             if ( | ||||
|                 !preg_match( | ||||
|                     '/^(?:(ssl|tls):\/\/)?(.+?)(?::(\d+))?$/', | ||||
|                     trim($hostentry), | ||||
|                     $hostinfo | ||||
|                 ) | ||||
|             ) { | ||||
|                 $this->edebug($this->lang('invalid_hostentry') . ' ' . trim($hostentry)); | ||||
|                 // Not a valid host entry | ||||
|                 continue; | ||||
| @@ -2000,7 +2034,12 @@ class PHPMailer | ||||
|             } | ||||
|             $host = $hostinfo[2]; | ||||
|             $port = $this->Port; | ||||
|             if (array_key_exists(3, $hostinfo) && is_numeric($hostinfo[3]) && $hostinfo[3] > 0 && $hostinfo[3] < 65536) { | ||||
|             if ( | ||||
|                 array_key_exists(3, $hostinfo) && | ||||
|                 is_numeric($hostinfo[3]) && | ||||
|                 $hostinfo[3] > 0 && | ||||
|                 $hostinfo[3] < 65536 | ||||
|             ) { | ||||
|                 $port = (int) $hostinfo[3]; | ||||
|             } | ||||
|             if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) { | ||||
| @@ -2026,12 +2065,14 @@ class PHPMailer | ||||
|                         // We must resend EHLO after TLS negotiation | ||||
|                         $this->smtp->hello($hello); | ||||
|                     } | ||||
|                     if ($this->SMTPAuth && !$this->smtp->authenticate( | ||||
|                         $this->Username, | ||||
|                         $this->Password, | ||||
|                         $this->AuthType, | ||||
|                         $this->oauth | ||||
|                     )) { | ||||
|                     if ( | ||||
|                         $this->SMTPAuth && !$this->smtp->authenticate( | ||||
|                             $this->Username, | ||||
|                             $this->Password, | ||||
|                             $this->AuthType, | ||||
|                             $this->oauth | ||||
|                         ) | ||||
|                     ) { | ||||
|                         throw new Exception($this->lang('authenticate')); | ||||
|                     } | ||||
|  | ||||
| @@ -2089,7 +2130,7 @@ class PHPMailer | ||||
|             'am' => 'hy', | ||||
|         ]; | ||||
|  | ||||
|         if (isset($renamed_langcodes[$langcode])) { | ||||
|         if (array_key_exists($langcode, $renamed_langcodes)) { | ||||
|             $langcode = $renamed_langcodes[$langcode]; | ||||
|         } | ||||
|  | ||||
| @@ -2130,7 +2171,7 @@ class PHPMailer | ||||
|         // There is no English translation file | ||||
|         if ('en' !== $langcode) { | ||||
|             // Make sure language file path is readable | ||||
|             if (!static::isPermittedPath($lang_file) || !file_exists($lang_file)) { | ||||
|             if (!static::fileIsAccessible($lang_file)) { | ||||
|                 $foundlang = false; | ||||
|             } else { | ||||
|                 // Overwrite language-specific strings. | ||||
| @@ -2378,21 +2419,18 @@ class PHPMailer | ||||
|  | ||||
|         $result .= $this->headerLine('Date', '' === $this->MessageDate ? self::rfcDate() : $this->MessageDate); | ||||
|  | ||||
|         // To be created automatically by mail() | ||||
|         if ($this->SingleTo) { | ||||
|             if ('mail' !== $this->Mailer) { | ||||
|         // The To header is created automatically by mail(), so needs to be omitted here | ||||
|         if ('mail' !== $this->Mailer) { | ||||
|             if ($this->SingleTo) { | ||||
|                 foreach ($this->to as $toaddr) { | ||||
|                     $this->SingleToArray[] = $this->addrFormat($toaddr); | ||||
|                 } | ||||
|             } | ||||
|         } elseif (count($this->to) > 0) { | ||||
|             if ('mail' !== $this->Mailer) { | ||||
|             } elseif (count($this->to) > 0) { | ||||
|                 $result .= $this->addrAppend('To', $this->to); | ||||
|             } elseif (count($this->cc) === 0) { | ||||
|                 $result .= $this->headerLine('To', 'undisclosed-recipients:;'); | ||||
|             } | ||||
|         } elseif (count($this->cc) === 0) { | ||||
|             $result .= $this->headerLine('To', 'undisclosed-recipients:;'); | ||||
|         } | ||||
|  | ||||
|         $result .= $this->addrAppend('From', [[trim($this->From), $this->FromName]]); | ||||
|  | ||||
|         // sendmail and mail() extract Cc from the header before sending | ||||
| @@ -2401,7 +2439,8 @@ class PHPMailer | ||||
|         } | ||||
|  | ||||
|         // sendmail and mail() extract Bcc from the header before sending | ||||
|         if (( | ||||
|         if ( | ||||
|             ( | ||||
|                 'sendmail' === $this->Mailer || 'qmail' === $this->Mailer || 'mail' === $this->Mailer | ||||
|             ) | ||||
|             && count($this->bcc) > 0 | ||||
| @@ -2947,7 +2986,7 @@ class PHPMailer | ||||
|      * @param string $path        Path to the attachment | ||||
|      * @param string $name        Overrides the attachment name | ||||
|      * @param string $encoding    File encoding (see $Encoding) | ||||
|      * @param string $type        File extension (MIME) type | ||||
|      * @param string $type        MIME type, e.g. `image/jpeg`; determined automatically from $path if not specified | ||||
|      * @param string $disposition Disposition to use | ||||
|      * | ||||
|      * @throws Exception | ||||
| @@ -2962,7 +3001,7 @@ class PHPMailer | ||||
|         $disposition = 'attachment' | ||||
|     ) { | ||||
|         try { | ||||
|             if (!static::isPermittedPath($path) || !@is_file($path) || !is_readable($path)) { | ||||
|             if (!static::fileIsAccessible($path)) { | ||||
|                 throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE); | ||||
|             } | ||||
|  | ||||
| @@ -2975,7 +3014,6 @@ class PHPMailer | ||||
|             if ('' === $name) { | ||||
|                 $name = $filename; | ||||
|             } | ||||
|  | ||||
|             if (!$this->validateEncoding($encoding)) { | ||||
|                 throw new Exception($this->lang('encoding') . $encoding); | ||||
|             } | ||||
| @@ -3137,7 +3175,7 @@ class PHPMailer | ||||
|     protected function encodeFile($path, $encoding = self::ENCODING_BASE64) | ||||
|     { | ||||
|         try { | ||||
|             if (!static::isPermittedPath($path) || !file_exists($path) || !is_readable($path)) { | ||||
|             if (!static::fileIsAccessible($path)) { | ||||
|                 throw new Exception($this->lang('file_open') . $path, self::STOP_CONTINUE); | ||||
|             } | ||||
|             $file_buffer = file_get_contents($path); | ||||
| @@ -3523,7 +3561,7 @@ class PHPMailer | ||||
|         $disposition = 'inline' | ||||
|     ) { | ||||
|         try { | ||||
|             if (!static::isPermittedPath($path) || !@is_file($path) || !is_readable($path)) { | ||||
|             if (!static::fileIsAccessible($path)) { | ||||
|                 throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE); | ||||
|             } | ||||
|  | ||||
| @@ -3872,7 +3910,8 @@ class PHPMailer | ||||
|     public static function isValidHost($host) | ||||
|     { | ||||
|         //Simple syntax limits | ||||
|         if (empty($host) | ||||
|         if ( | ||||
|             empty($host) | ||||
|             || !is_string($host) | ||||
|             || strlen($host) > 256 | ||||
|             || !preg_match('/^([a-zA-Z\d.-]*|\[[a-fA-F\d:]+])$/', $host) | ||||
| @@ -3990,7 +4029,8 @@ class PHPMailer | ||||
|      * @param string        $message  HTML message string | ||||
|      * @param string        $basedir  Absolute path to a base directory to prepend to relative paths to images | ||||
|      * @param bool|callable $advanced Whether to use the internal HTML to text converter | ||||
|      *                                or your own custom converter @return string $message The transformed message Body | ||||
|      *                                or your own custom converter | ||||
|      * @return string The transformed message body | ||||
|      * | ||||
|      * @throws Exception | ||||
|      * | ||||
| @@ -4037,7 +4077,8 @@ class PHPMailer | ||||
|                     ); | ||||
|                     continue; | ||||
|                 } | ||||
|                 if (// Only process relative URLs if a basedir is provided (i.e. no absolute local paths) | ||||
|                 if ( | ||||
|                     // Only process relative URLs if a basedir is provided (i.e. no absolute local paths) | ||||
|                     !empty($basedir) | ||||
|                     // Ignore URLs containing parent dir traversal (..) | ||||
|                     && (strpos($url, '..') === false) | ||||
| @@ -4059,13 +4100,14 @@ class PHPMailer | ||||
|                     if (strlen($directory) > 1 && '/' !== substr($directory, -1)) { | ||||
|                         $directory .= '/'; | ||||
|                     } | ||||
|                     if ($this->addEmbeddedImage( | ||||
|                         $basedir . $directory . $filename, | ||||
|                         $cid, | ||||
|                         $filename, | ||||
|                         static::ENCODING_BASE64, | ||||
|                         static::_mime_types((string) static::mb_pathinfo($filename, PATHINFO_EXTENSION)) | ||||
|                     ) | ||||
|                     if ( | ||||
|                         $this->addEmbeddedImage( | ||||
|                             $basedir . $directory . $filename, | ||||
|                             $cid, | ||||
|                             $filename, | ||||
|                             static::ENCODING_BASE64, | ||||
|                             static::_mime_types((string) static::mb_pathinfo($filename, PATHINFO_EXTENSION)) | ||||
|                         ) | ||||
|                     ) { | ||||
|                         $message = preg_replace( | ||||
|                             '/' . $images[1][$imgindex] . '=["\']' . preg_quote($url, '/') . '["\']/Ui', | ||||
| @@ -4114,7 +4156,7 @@ class PHPMailer | ||||
|     public function html2text($html, $advanced = false) | ||||
|     { | ||||
|         if (is_callable($advanced)) { | ||||
|             return $advanced($html); | ||||
|             return call_user_func($advanced, $html); | ||||
|         } | ||||
|  | ||||
|         return html_entity_decode( | ||||
| @@ -4213,6 +4255,7 @@ class PHPMailer | ||||
|             'tiff' => 'image/tiff', | ||||
|             'tif' => 'image/tiff', | ||||
|             'webp' => 'image/webp', | ||||
|             'avif' => 'image/avif', | ||||
|             'heif' => 'image/heif', | ||||
|             'heifs' => 'image/heif-sequence', | ||||
|             'heic' => 'image/heic', | ||||
| @@ -4483,11 +4526,15 @@ class PHPMailer | ||||
|             $privKey = openssl_pkey_get_private($privKeyStr); | ||||
|         } | ||||
|         if (openssl_sign($signHeader, $signature, $privKey, 'sha256WithRSAEncryption')) { | ||||
|             openssl_pkey_free($privKey); | ||||
|             if (PHP_MAJOR_VERSION < 8) { | ||||
|                 openssl_pkey_free($privKey); | ||||
|             } | ||||
|  | ||||
|             return base64_encode($signature); | ||||
|         } | ||||
|         openssl_pkey_free($privKey); | ||||
|         if (PHP_MAJOR_VERSION < 8) { | ||||
|             openssl_pkey_free($privKey); | ||||
|         } | ||||
|  | ||||
|         return ''; | ||||
|     } | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * PHPMailer POP-Before-SMTP Authentication Class. | ||||
|  * PHP Version 5.5. | ||||
| @@ -9,7 +10,7 @@ | ||||
|  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com> | ||||
|  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> | ||||
|  * @author    Brent R. Matzelle (original founder) | ||||
|  * @copyright 2012 - 2019 Marcus Bointon | ||||
|  * @copyright 2012 - 2020 Marcus Bointon | ||||
|  * @copyright 2010 - 2012 Jim Jagielski | ||||
|  * @copyright 2004 - 2009 Andy Prevost | ||||
|  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License | ||||
| @@ -45,7 +46,7 @@ class POP3 | ||||
|      * | ||||
|      * @var string | ||||
|      */ | ||||
|     const VERSION = '6.1.6'; | ||||
|     const VERSION = '6.2.0'; | ||||
|  | ||||
|     /** | ||||
|      * Default POP3 port number. | ||||
| @@ -62,12 +63,16 @@ class POP3 | ||||
|     const DEFAULT_TIMEOUT = 30; | ||||
|  | ||||
|     /** | ||||
|      * Debug display level. | ||||
|      * Options: 0 = no, 1+ = yes. | ||||
|      * POP3 class debug output mode. | ||||
|      * Debug output level. | ||||
|      * Options: | ||||
|      * @see POP3::DEBUG_OFF: No output | ||||
|      * @see POP3::DEBUG_SERVER: Server messages, connection/server errors | ||||
|      * @see POP3::DEBUG_CLIENT: Client and Server messages, connection/server errors | ||||
|      * | ||||
|      * @var int | ||||
|      */ | ||||
|     public $do_debug = 0; | ||||
|     public $do_debug = self::DEBUG_OFF; | ||||
|  | ||||
|     /** | ||||
|      * POP3 mail server hostname. | ||||
| @@ -130,6 +135,28 @@ class POP3 | ||||
|      */ | ||||
|     const LE = "\r\n"; | ||||
|  | ||||
|     /** | ||||
|      * Debug level for no output. | ||||
|      * | ||||
|      * @var int | ||||
|      */ | ||||
|     const DEBUG_OFF = 0; | ||||
|  | ||||
|     /** | ||||
|      * Debug level to show server -> client messages | ||||
|      * also shows clients connection errors or errors from server | ||||
|      * | ||||
|      * @var int | ||||
|      */ | ||||
|     const DEBUG_SERVER = 1; | ||||
|  | ||||
|     /** | ||||
|      * Debug level to show client -> server and server -> client messages. | ||||
|      * | ||||
|      * @var int | ||||
|      */ | ||||
|     const DEBUG_CLIENT = 2; | ||||
|  | ||||
|     /** | ||||
|      * Simple static wrapper for all-in-one POP before SMTP. | ||||
|      * | ||||
| @@ -329,7 +356,7 @@ class POP3 | ||||
|     protected function getResponse($size = 128) | ||||
|     { | ||||
|         $response = fgets($this->pop_conn, $size); | ||||
|         if ($this->do_debug >= 1) { | ||||
|         if ($this->do_debug >= self::DEBUG_SERVER) { | ||||
|             echo 'Server -> Client: ', $response; | ||||
|         } | ||||
|  | ||||
| @@ -346,7 +373,7 @@ class POP3 | ||||
|     protected function sendString($string) | ||||
|     { | ||||
|         if ($this->pop_conn) { | ||||
|             if ($this->do_debug >= 2) { //Show client messages when debug >= 2 | ||||
|             if ($this->do_debug >= self::DEBUG_CLIENT) { //Show client messages when debug >= 2 | ||||
|                 echo 'Client -> Server: ', $string; | ||||
|             } | ||||
|  | ||||
| @@ -384,7 +411,7 @@ class POP3 | ||||
|     protected function setError($error) | ||||
|     { | ||||
|         $this->errors[] = $error; | ||||
|         if ($this->do_debug >= 1) { | ||||
|         if ($this->do_debug >= self::DEBUG_SERVER) { | ||||
|             echo '<pre>'; | ||||
|             foreach ($this->errors as $e) { | ||||
|                 print_r($e); | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * PHPMailer RFC821 SMTP email transport class. | ||||
|  * PHP Version 5.5. | ||||
| @@ -9,7 +10,7 @@ | ||||
|  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com> | ||||
|  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net> | ||||
|  * @author    Brent R. Matzelle (original founder) | ||||
|  * @copyright 2012 - 2019 Marcus Bointon | ||||
|  * @copyright 2012 - 2020 Marcus Bointon | ||||
|  * @copyright 2010 - 2012 Jim Jagielski | ||||
|  * @copyright 2004 - 2009 Andy Prevost | ||||
|  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License | ||||
| @@ -34,7 +35,7 @@ class SMTP | ||||
|      * | ||||
|      * @var string | ||||
|      */ | ||||
|     const VERSION = '6.1.6'; | ||||
|     const VERSION = '6.2.0'; | ||||
|  | ||||
|     /** | ||||
|      * SMTP line break constant. | ||||
| @@ -311,12 +312,6 @@ class SMTP | ||||
|      */ | ||||
|     public function connect($host, $port = null, $timeout = 30, $options = []) | ||||
|     { | ||||
|         static $streamok; | ||||
|         //This is enabled by default since 5.0.0 but some providers disable it | ||||
|         //Check this once and cache the result | ||||
|         if (null === $streamok) { | ||||
|             $streamok = function_exists('stream_socket_client'); | ||||
|         } | ||||
|         // Clear errors to avoid confusion | ||||
|         $this->setError(''); | ||||
|         // Make sure we are __not__ connected | ||||
| @@ -335,12 +330,48 @@ class SMTP | ||||
|             (count($options) > 0 ? var_export($options, true) : 'array()'), | ||||
|             self::DEBUG_CONNECTION | ||||
|         ); | ||||
|  | ||||
|         $this->smtp_conn = $this->getSMTPConnection($host, $port, $timeout, $options); | ||||
|  | ||||
|         if ($this->smtp_conn === false) { | ||||
|             //Error info already set inside `getSMTPConnection()` | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         $this->edebug('Connection: opened', self::DEBUG_CONNECTION); | ||||
|  | ||||
|         // Get any announcement | ||||
|         $this->last_reply = $this->get_lines(); | ||||
|         $this->edebug('SERVER -> CLIENT: ' . $this->last_reply, self::DEBUG_SERVER); | ||||
|  | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create connection to the SMTP server. | ||||
|      * | ||||
|      * @param string $host    SMTP server IP or host name | ||||
|      * @param int    $port    The port number to connect to | ||||
|      * @param int    $timeout How long to wait for the connection to open | ||||
|      * @param array  $options An array of options for stream_context_create() | ||||
|      * | ||||
|      * @return false|resource | ||||
|      */ | ||||
|     protected function getSMTPConnection($host, $port = null, $timeout = 30, $options = []) | ||||
|     { | ||||
|         static $streamok; | ||||
|         //This is enabled by default since 5.0.0 but some providers disable it | ||||
|         //Check this once and cache the result | ||||
|         if (null === $streamok) { | ||||
|             $streamok = function_exists('stream_socket_client'); | ||||
|         } | ||||
|  | ||||
|         $errno = 0; | ||||
|         $errstr = ''; | ||||
|         if ($streamok) { | ||||
|             $socket_context = stream_context_create($options); | ||||
|             set_error_handler([$this, 'errorHandler']); | ||||
|             $this->smtp_conn = stream_socket_client( | ||||
|             $connection = stream_socket_client( | ||||
|                 $host . ':' . $port, | ||||
|                 $errno, | ||||
|                 $errstr, | ||||
| @@ -356,7 +387,7 @@ class SMTP | ||||
|                 self::DEBUG_CONNECTION | ||||
|             ); | ||||
|             set_error_handler([$this, 'errorHandler']); | ||||
|             $this->smtp_conn = fsockopen( | ||||
|             $connection = fsockopen( | ||||
|                 $host, | ||||
|                 $port, | ||||
|                 $errno, | ||||
| @@ -365,8 +396,9 @@ class SMTP | ||||
|             ); | ||||
|             restore_error_handler(); | ||||
|         } | ||||
|  | ||||
|         // Verify we connected properly | ||||
|         if (!is_resource($this->smtp_conn)) { | ||||
|         if (!is_resource($connection)) { | ||||
|             $this->setError( | ||||
|                 'Failed to connect to server', | ||||
|                 '', | ||||
| @@ -381,22 +413,19 @@ class SMTP | ||||
|  | ||||
|             return false; | ||||
|         } | ||||
|         $this->edebug('Connection: opened', self::DEBUG_CONNECTION); | ||||
|  | ||||
|         // SMTP server can take longer to respond, give longer timeout for first read | ||||
|         // Windows does not have support for this timeout function | ||||
|         if (strpos(PHP_OS, 'WIN') !== 0) { | ||||
|             $max = (int) ini_get('max_execution_time'); | ||||
|             // Don't bother if unlimited | ||||
|             if (0 !== $max && $timeout > $max) { | ||||
|             $max = (int)ini_get('max_execution_time'); | ||||
|             // Don't bother if unlimited, or if set_time_limit is disabled | ||||
|             if (0 !== $max && $timeout > $max && strpos(ini_get('disable_functions'), 'set_time_limit') === false) { | ||||
|                 @set_time_limit($timeout); | ||||
|             } | ||||
|             stream_set_timeout($this->smtp_conn, $timeout, 0); | ||||
|             stream_set_timeout($connection, $timeout, 0); | ||||
|         } | ||||
|         // Get any announcement | ||||
|         $announce = $this->get_lines(); | ||||
|         $this->edebug('SERVER -> CLIENT: ' . $announce, self::DEBUG_SERVER); | ||||
|  | ||||
|         return true; | ||||
|         return $connection; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -511,11 +540,12 @@ class SMTP | ||||
|                     return false; | ||||
|                 } | ||||
|                 // Send encoded username and password | ||||
|                 if (!$this->sendCommand( | ||||
|                     'User & Password', | ||||
|                     base64_encode("\0" . $username . "\0" . $password), | ||||
|                     235 | ||||
|                 ) | ||||
|                 if ( | ||||
|                     !$this->sendCommand( | ||||
|                         'User & Password', | ||||
|                         base64_encode("\0" . $username . "\0" . $password), | ||||
|                         235 | ||||
|                     ) | ||||
|                 ) { | ||||
|                     return false; | ||||
|                 } | ||||
| @@ -1058,8 +1088,10 @@ class SMTP | ||||
|     { | ||||
|         //If SMTP transcripts are left enabled, or debug output is posted online | ||||
|         //it can leak credentials, so hide credentials in all but lowest level | ||||
|         if (self::DEBUG_LOWLEVEL > $this->do_debug && | ||||
|             in_array($command, ['User & Password', 'Username', 'Password'], true)) { | ||||
|         if ( | ||||
|             self::DEBUG_LOWLEVEL > $this->do_debug && | ||||
|             in_array($command, ['User & Password', 'Username', 'Password'], true) | ||||
|         ) { | ||||
|             $this->edebug('CLIENT -> SERVER: [credentials hidden]', self::DEBUG_CLIENT); | ||||
|         } else { | ||||
|             $this->edebug('CLIENT -> SERVER: ' . $data, self::DEBUG_CLIENT); | ||||
| @@ -1166,13 +1198,41 @@ class SMTP | ||||
|         $selW = null; | ||||
|         while (is_resource($this->smtp_conn) && !feof($this->smtp_conn)) { | ||||
|             //Must pass vars in here as params are by reference | ||||
|             if (!stream_select($selR, $selW, $selW, $this->Timelimit)) { | ||||
|             //solution for signals inspired by https://github.com/symfony/symfony/pull/6540 | ||||
|             set_error_handler([$this, 'errorHandler']); | ||||
|             $n = stream_select($selR, $selW, $selW, $this->Timelimit); | ||||
|             restore_error_handler(); | ||||
|  | ||||
|             if ($n === false) { | ||||
|                 $message = $this->getError()['detail']; | ||||
|  | ||||
|                 $this->edebug( | ||||
|                     'SMTP -> get_lines(): select failed (' . $message . ')', | ||||
|                     self::DEBUG_LOWLEVEL | ||||
|                 ); | ||||
|  | ||||
|                 //stream_select returns false when the `select` system call is interrupted | ||||
|                 //by an incoming signal, try the select again | ||||
|                 if (stripos($message, 'interrupted system call') !== false) { | ||||
|                     $this->edebug( | ||||
|                         'SMTP -> get_lines(): retrying stream_select', | ||||
|                         self::DEBUG_LOWLEVEL | ||||
|                     ); | ||||
|                     $this->setError(''); | ||||
|                     continue; | ||||
|                 } | ||||
|  | ||||
|                 break; | ||||
|             } | ||||
|  | ||||
|             if (!$n) { | ||||
|                 $this->edebug( | ||||
|                     'SMTP -> get_lines(): select timed-out in (' . $this->Timelimit . ' sec)', | ||||
|                     self::DEBUG_LOWLEVEL | ||||
|                 ); | ||||
|                 break; | ||||
|             } | ||||
|  | ||||
|             //Deliberate noise suppression - errors are handled afterwards | ||||
|             $str = @fgets($this->smtp_conn, self::MAX_REPLY_LENGTH); | ||||
|             $this->edebug('SMTP INBOUND: "' . trim($str) . '"', self::DEBUG_LOWLEVEL); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user