create-berna-stencil 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eleventy.js +3 -1
- package/.env.example +8 -0
- package/.gitignore +2 -1
- package/README.md +1 -5
- package/bin/create.js +2 -1
- package/package.json +71 -70
- package/src/.htaccess +18 -0
- package/src/api/.htaccess +12 -0
- package/src/api/composer.json +6 -0
- package/src/api/composer.lock +574 -0
- package/src/api/endpoints/protected/secret.php +16 -0
- package/src/api/endpoints/protected/send-mail.php +75 -0
- package/src/api/endpoints/public/ping.php +16 -0
- package/src/api/index.php +95 -0
- package/src/api/init.php +43 -0
- package/src/api/modules/Response.php +37 -0
- package/src/api/vendor/autoload.php +22 -0
- package/src/api/vendor/composer/ClassLoader.php +579 -0
- package/src/api/vendor/composer/InstalledVersions.php +396 -0
- package/src/api/vendor/composer/LICENSE +21 -0
- package/src/api/vendor/composer/autoload_classmap.php +15 -0
- package/src/api/vendor/composer/autoload_files.php +12 -0
- package/src/api/vendor/composer/autoload_namespaces.php +9 -0
- package/src/api/vendor/composer/autoload_psr4.php +16 -0
- package/src/api/vendor/composer/autoload_real.php +50 -0
- package/src/api/vendor/composer/autoload_static.php +86 -0
- package/src/api/vendor/composer/installed.json +582 -0
- package/src/api/vendor/composer/installed.php +86 -0
- package/src/api/vendor/composer/platform_check.php +25 -0
- package/src/api/vendor/graham-campbell/result-type/.gitattributes +9 -0
- package/src/api/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +132 -0
- package/src/api/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +31 -0
- package/src/api/vendor/graham-campbell/result-type/.github/FUNDING.yml +2 -0
- package/src/api/vendor/graham-campbell/result-type/.github/SECURITY.md +14 -0
- package/src/api/vendor/graham-campbell/result-type/.github/workflows/stale.yml +11 -0
- package/src/api/vendor/graham-campbell/result-type/.github/workflows/tests.yml +40 -0
- package/src/api/vendor/graham-campbell/result-type/CHANGELOG.md +53 -0
- package/src/api/vendor/graham-campbell/result-type/LICENSE +21 -0
- package/src/api/vendor/graham-campbell/result-type/README.md +42 -0
- package/src/api/vendor/graham-campbell/result-type/composer.json +33 -0
- package/src/api/vendor/graham-campbell/result-type/phpunit.xml.dist +13 -0
- package/src/api/vendor/graham-campbell/result-type/src/Error.php +121 -0
- package/src/api/vendor/graham-campbell/result-type/src/Result.php +69 -0
- package/src/api/vendor/graham-campbell/result-type/src/Success.php +120 -0
- package/src/api/vendor/graham-campbell/result-type/tests/ResultTest.php +95 -0
- package/src/api/vendor/phpmailer/phpmailer/.codecov.yml +21 -0
- package/src/api/vendor/phpmailer/phpmailer/.editorconfig +15 -0
- package/src/api/vendor/phpmailer/phpmailer/.gitattributes +17 -0
- package/src/api/vendor/phpmailer/phpmailer/.github/FUNDING.yml +6 -0
- package/src/api/vendor/phpmailer/phpmailer/.github/ISSUE_TEMPLATE/bug_report.md +23 -0
- package/src/api/vendor/phpmailer/phpmailer/.github/actions/build-docs/Dockerfile +15 -0
- package/src/api/vendor/phpmailer/phpmailer/.github/actions/build-docs/entrypoint.sh +5 -0
- package/src/api/vendor/phpmailer/phpmailer/.github/dependabot.yml +21 -0
- package/src/api/vendor/phpmailer/phpmailer/.github/workflows/docs.yaml +30 -0
- package/src/api/vendor/phpmailer/phpmailer/.github/workflows/scorecards.yml +61 -0
- package/src/api/vendor/phpmailer/phpmailer/.github/workflows/tests.yml +237 -0
- package/src/api/vendor/phpmailer/phpmailer/.phan/config.php +41 -0
- package/src/api/vendor/phpmailer/phpmailer/COMMITMENT +46 -0
- package/src/api/vendor/phpmailer/phpmailer/LICENSE +502 -0
- package/src/api/vendor/phpmailer/phpmailer/README.md +232 -0
- package/src/api/vendor/phpmailer/phpmailer/SECURITY.md +37 -0
- package/src/api/vendor/phpmailer/phpmailer/SMTPUTF8.md +48 -0
- package/src/api/vendor/phpmailer/phpmailer/UPGRADING.md +125 -0
- package/src/api/vendor/phpmailer/phpmailer/VERSION +1 -0
- package/src/api/vendor/phpmailer/phpmailer/changelog.md +1122 -0
- package/src/api/vendor/phpmailer/phpmailer/composer.json +84 -0
- package/src/api/vendor/phpmailer/phpmailer/docs/README.md +9 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/DKIM_gen_keys.phps +81 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/DKIM_sign.phps +46 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/README.md +96 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/azure_xoauth2.phps +126 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/callback.phps +76 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/contactform-ajax.phps +146 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/contactform.phps +95 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/contents.html +17 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/contentsutf8.html +23 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/exceptions.phps +40 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/extending.phps +72 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/gmail.phps +106 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/gmail_xoauth.phps +121 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/images/PHPMailer card logo.afdesign +0 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/images/PHPMailer card logo.png +0 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/images/PHPMailer card logo.svg +209 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/images/phpmailer.png +0 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/images/phpmailer_mini.png +0 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/mail.phps +35 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/mailing_list.phps +96 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/pop_before_smtp.phps +60 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/send_file_upload.phps +60 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/send_multiple_file_upload.phps +60 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/sendmail.phps +37 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/sendoauth2.phps +100 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/simple_contact_form.phps +102 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/smime_signed_mail.phps +99 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/smtp.phps +62 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/smtp_check.phps +60 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/smtp_low_memory.phps +117 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/smtp_no_auth.phps +53 -0
- package/src/api/vendor/phpmailer/phpmailer/examples/ssl_options.phps +81 -0
- package/src/api/vendor/phpmailer/phpmailer/get_oauth_token.php +182 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php +26 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-as.php +35 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ba.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-bn.php +35 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php +28 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php +39 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php +28 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-el.php +33 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php +37 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-es.php +38 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php +28 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php +28 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fo.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php +36 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-gl.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php +35 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hy.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php +31 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php +28 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php +37 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ku.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-mn.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php +37 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-nl.php +38 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php +33 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt.php +34 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php +38 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php +33 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ru.php +36 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-si.php +34 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php +30 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php +36 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php +28 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr_latn.php +28 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php +28 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php +38 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php +28 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ur.php +30 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php +27 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php +29 -0
- package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php +36 -0
- package/src/api/vendor/phpmailer/phpmailer/phpcs.xml.dist +52 -0
- package/src/api/vendor/phpmailer/phpmailer/phpdoc.dist.xml +20 -0
- package/src/api/vendor/phpmailer/phpmailer/phpunit.xml.dist +36 -0
- package/src/api/vendor/phpmailer/phpmailer/src/DSNConfigurator.php +245 -0
- package/src/api/vendor/phpmailer/phpmailer/src/Exception.php +40 -0
- package/src/api/vendor/phpmailer/phpmailer/src/OAuth.php +139 -0
- package/src/api/vendor/phpmailer/phpmailer/src/OAuthTokenProvider.php +44 -0
- package/src/api/vendor/phpmailer/phpmailer/src/PHPMailer.php +5525 -0
- package/src/api/vendor/phpmailer/phpmailer/src/POP3.php +470 -0
- package/src/api/vendor/phpmailer/phpmailer/src/SMTP.php +1617 -0
- package/src/api/vendor/phpmailer/phpmailer/test/DebugLogTestListener.php +47 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/FileIsAccessibleTest/accessible.txt +1 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/FileIsAccessibleTest/inaccessible.txt +1 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-fr.php +10 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-nl.php +10 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xa_scri_cc.php +9 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xb_scri.php +9 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xc_cc.php +9 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xd_cc.php +9 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xd_scri.php +9 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xe.php +9 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xx.php +9 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-yy.php +16 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-yz.php +16 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-zz.php +20 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Language/TranslationCompletenessTest.php +97 -0
- package/src/api/vendor/phpmailer/phpmailer/test/OAuth/OAuthTest.php +76 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddEmbeddedImageTest.php +178 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddStringAttachmentTest.php +147 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddStringEmbeddedImageTest.php +161 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddrFormatTest.php +70 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AuthCRAMMD5Test.php +48 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/CustomHeaderTest.php +285 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/DKIMTest.php +258 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/DKIMWithoutExceptionsTest.php +46 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/DSNConfiguratorTest.php +221 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/EncodeQTest.php +110 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/EncodeStringTest.php +135 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/FileIsAccessibleTest.php +103 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/FilenameToTypeTest.php +74 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/GenerateIdTest.php +75 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/GetLastMessageIDTest.php +110 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/HasLineLongerThanMaxTest.php +158 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/Html2TextTest.php +231 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ICalTest.php +126 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/IsPermittedPathTest.php +108 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/IsValidHostTest.php +107 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/LocalizationTest.php +505 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/MailTransportTest.php +261 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/MbPathinfoTest.php +171 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/MimeTypesTest.php +70 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/NormalizeBreaksTest.php +111 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/PHPMailerTest.php +1388 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ParseAddressesTest.php +321 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/PunyencodeAddressTest.php +141 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/QuotedStringTest.php +70 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ReplyToGetSetClearTest.php +444 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetErrorTest.php +154 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetFromTest.php +202 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetTest.php +81 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetWordWrapTest.php +120 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/Utf8CharBoundaryTest.php +66 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ValidateAddressCustomValidatorTest.php +116 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ValidateAddressTest.php +485 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/WrapTextTest.php +125 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/XMailerTest.php +75 -0
- package/src/api/vendor/phpmailer/phpmailer/test/POP3/PopBeforeSmtpTest.php +139 -0
- package/src/api/vendor/phpmailer/phpmailer/test/PreSendTestCase.php +46 -0
- package/src/api/vendor/phpmailer/phpmailer/test/Security/DenialOfServiceVectorsTest.php +52 -0
- package/src/api/vendor/phpmailer/phpmailer/test/SendTestCase.php +126 -0
- package/src/api/vendor/phpmailer/phpmailer/test/TestCase.php +392 -0
- package/src/api/vendor/phpmailer/phpmailer/test/fakepopserver.sh +126 -0
- package/src/api/vendor/phpmailer/phpmailer/test/fakesendmail.sh +22 -0
- package/src/api/vendor/phpmailer/phpmailer/test/runfakepopserver.sh +12 -0
- package/src/api/vendor/phpmailer/phpmailer/test/testbootstrap-dist.php +8 -0
- package/src/api/vendor/phpmailer/phpmailer/test/validators.php +12 -0
- package/src/api/vendor/phpoption/phpoption/.gitattributes +13 -0
- package/src/api/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +132 -0
- package/src/api/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +30 -0
- package/src/api/vendor/phpoption/phpoption/.github/FUNDING.yml +2 -0
- package/src/api/vendor/phpoption/phpoption/.github/SECURITY.md +14 -0
- package/src/api/vendor/phpoption/phpoption/.github/workflows/static.yml +40 -0
- package/src/api/vendor/phpoption/phpoption/.github/workflows/tests.yml +40 -0
- package/src/api/vendor/phpoption/phpoption/LICENSE +201 -0
- package/src/api/vendor/phpoption/phpoption/Makefile +17 -0
- package/src/api/vendor/phpoption/phpoption/README.md +201 -0
- package/src/api/vendor/phpoption/phpoption/composer.json +50 -0
- package/src/api/vendor/phpoption/phpoption/phpstan-baseline.neon +44 -0
- package/src/api/vendor/phpoption/phpoption/phpstan.neon.dist +7 -0
- package/src/api/vendor/phpoption/phpoption/phpunit.xml.dist +13 -0
- package/src/api/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -0
- package/src/api/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -0
- package/src/api/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -0
- package/src/api/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -0
- package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +72 -0
- package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +357 -0
- package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +153 -0
- package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +166 -0
- package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +194 -0
- package/src/api/vendor/phpoption/phpoption/tests/bootstrap.php +8 -0
- package/src/api/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +8 -0
- package/src/api/vendor/symfony/polyfill-ctype/Ctype.php +232 -0
- package/src/api/vendor/symfony/polyfill-ctype/LICENSE +19 -0
- package/src/api/vendor/symfony/polyfill-ctype/README.md +12 -0
- package/src/api/vendor/symfony/polyfill-ctype/bootstrap.php +50 -0
- package/src/api/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -0
- package/src/api/vendor/symfony/polyfill-ctype/composer.json +38 -0
- package/src/api/vendor/symfony/polyfill-mbstring/LICENSE +19 -0
- package/src/api/vendor/symfony/polyfill-mbstring/Mbstring.php +1077 -0
- package/src/api/vendor/symfony/polyfill-mbstring/README.md +13 -0
- package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -0
- package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -0
- package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -0
- package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -0
- package/src/api/vendor/symfony/polyfill-mbstring/bootstrap.php +171 -0
- package/src/api/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -0
- package/src/api/vendor/symfony/polyfill-mbstring/composer.json +39 -0
- package/src/api/vendor/symfony/polyfill-php80/LICENSE +19 -0
- package/src/api/vendor/symfony/polyfill-php80/Php80.php +115 -0
- package/src/api/vendor/symfony/polyfill-php80/PhpToken.php +106 -0
- package/src/api/vendor/symfony/polyfill-php80/README.md +25 -0
- package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -0
- package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -0
- package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -0
- package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -0
- package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -0
- package/src/api/vendor/symfony/polyfill-php80/bootstrap.php +42 -0
- package/src/api/vendor/symfony/polyfill-php80/composer.json +37 -0
- package/src/api/vendor/vlucas/phpdotenv/.editorconfig +15 -0
- package/src/api/vendor/vlucas/phpdotenv/.gitattributes +15 -0
- package/src/api/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +132 -0
- package/src/api/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +30 -0
- package/src/api/vendor/vlucas/phpdotenv/.github/FUNDING.yml +2 -0
- package/src/api/vendor/vlucas/phpdotenv/.github/SECURITY.md +14 -0
- package/src/api/vendor/vlucas/phpdotenv/.github/workflows/static.yml +40 -0
- package/src/api/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +70 -0
- package/src/api/vendor/vlucas/phpdotenv/LICENSE +30 -0
- package/src/api/vendor/vlucas/phpdotenv/Makefile +17 -0
- package/src/api/vendor/vlucas/phpdotenv/README.md +370 -0
- package/src/api/vendor/vlucas/phpdotenv/UPGRADING.md +196 -0
- package/src/api/vendor/vlucas/phpdotenv/composer.json +60 -0
- package/src/api/vendor/vlucas/phpdotenv/phpstan-baseline.neon +157 -0
- package/src/api/vendor/vlucas/phpdotenv/phpstan.neon.dist +7 -0
- package/src/api/vendor/vlucas/phpdotenv/phpunit.xml.dist +13 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Loader/Loader.php +48 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +299 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +88 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +88 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Util/Str.php +108 -0
- package/src/api/vendor/vlucas/phpdotenv/src/Validator.php +207 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +387 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +86 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +234 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +40 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +53 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +98 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +57 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +75 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +52 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +75 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +305 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +141 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +479 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +5 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +18 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +33 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +15 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +1 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +1 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +7 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +1 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +17 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +2 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +3 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +14 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +4 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +1 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +15 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +11 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +8 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +2 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +3 -0
- package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +1 -0
- package/src/api/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +15 -0
- package/src/api/configExample.php +0 -28
- package/src/api/sendEmail.php +0 -131
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* PHPMailer - PHP email transport unit tests.
|
|
5
|
+
* PHP version 5.5.
|
|
6
|
+
*
|
|
7
|
+
* @author Marcus Bointon <phpmailer@synchromedia.co.uk>
|
|
8
|
+
* @author Andy Prevost
|
|
9
|
+
* @copyright 2012 - 2020 Marcus Bointon
|
|
10
|
+
* @copyright 2004 - 2009 Andy Prevost
|
|
11
|
+
* @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html GNU Lesser General Public License
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
namespace PHPMailer\Test\PHPMailer;
|
|
15
|
+
|
|
16
|
+
use PHPMailer\PHPMailer\PHPMailer;
|
|
17
|
+
use ReflectionMethod;
|
|
18
|
+
use Yoast\PHPUnitPolyfills\TestCases\TestCase;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Test RFC822 address splitting.
|
|
22
|
+
*/
|
|
23
|
+
final class ParseAddressesTest extends TestCase
|
|
24
|
+
{
|
|
25
|
+
/**
|
|
26
|
+
* Verify the expectations.
|
|
27
|
+
*
|
|
28
|
+
* Abstracted out as the same verification needs to be done for every test, just with different data.
|
|
29
|
+
*
|
|
30
|
+
* @param string $actual The actual function output.
|
|
31
|
+
* @param array $expected The expected function output.
|
|
32
|
+
*/
|
|
33
|
+
protected function verifyExpectations($actual, $expected)
|
|
34
|
+
{
|
|
35
|
+
self::assertIsArray($actual, 'parseAddresses() did not return an array');
|
|
36
|
+
self::assertSame(
|
|
37
|
+
$expected,
|
|
38
|
+
$actual,
|
|
39
|
+
'The return value from parseAddresses() did not match the expected output'
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Test RFC822 address splitting using the native implementation
|
|
45
|
+
*
|
|
46
|
+
* @dataProvider dataAddressSplittingNative
|
|
47
|
+
* @covers \PHPMailer\PHPMailer\PHPMailer::parseSimplerAddresses
|
|
48
|
+
*
|
|
49
|
+
* @param string $addrstr The address list string.
|
|
50
|
+
* @param array $expected The expected function output.
|
|
51
|
+
* @param string $charset Optional.The charset to use.
|
|
52
|
+
*/
|
|
53
|
+
public function testAddressSplittingNative($addrstr, $expected, $charset = PHPMailer::CHARSET_ISO88591)
|
|
54
|
+
{
|
|
55
|
+
set_error_handler(static function ($errno, $errstr) {
|
|
56
|
+
throw new \Exception($errstr, $errno);
|
|
57
|
+
}, E_USER_NOTICE);
|
|
58
|
+
|
|
59
|
+
try {
|
|
60
|
+
$this->expectException(\Exception::class);
|
|
61
|
+
|
|
62
|
+
$reflMethod = new ReflectionMethod(PHPMailer::class, 'parseSimplerAddresses');
|
|
63
|
+
(\PHP_VERSION_ID < 80100) && $reflMethod->setAccessible(true);
|
|
64
|
+
$parsed = $reflMethod->invoke(null, $addrstr, $charset);
|
|
65
|
+
(\PHP_VERSION_ID < 80100) && $reflMethod->setAccessible(false);
|
|
66
|
+
$this->verifyExpectations($parsed, $expected);
|
|
67
|
+
} finally {
|
|
68
|
+
restore_error_handler();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Data provider for testAddressSplittingNative.
|
|
74
|
+
*
|
|
75
|
+
* @return array
|
|
76
|
+
* addrstr: string,
|
|
77
|
+
* expected: array{name: string, address: string}[]
|
|
78
|
+
* charset: string
|
|
79
|
+
*/
|
|
80
|
+
public function dataAddressSplittingNative()
|
|
81
|
+
{
|
|
82
|
+
return [
|
|
83
|
+
'Valid address: single address without name' => [
|
|
84
|
+
'addrstr' => 'joe@example.com',
|
|
85
|
+
'expected' => [
|
|
86
|
+
['name' => '', 'address' => 'joe@example.com'],
|
|
87
|
+
],
|
|
88
|
+
],
|
|
89
|
+
'Valid address: two addresses with names' => [
|
|
90
|
+
'addrstr' => 'Joe User <joe@example.com>, Jill User <jill@example.net>',
|
|
91
|
+
'expected' => [
|
|
92
|
+
['name' => 'Joe User', 'address' => 'joe@example.com'],
|
|
93
|
+
['name' => 'Jill User', 'address' => 'jill@example.net'],
|
|
94
|
+
],
|
|
95
|
+
],
|
|
96
|
+
];
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Test if email addresses are parsed and split into a name and address.
|
|
101
|
+
*
|
|
102
|
+
* @dataProvider dataParseEmailString
|
|
103
|
+
* @covers \PHPMailer\PHPMailer\PHPMailer::parseEmailString
|
|
104
|
+
* @param mixed $addrstr
|
|
105
|
+
* @param mixed $expected
|
|
106
|
+
*/
|
|
107
|
+
public function testParseEmailString($addrstr, $expected)
|
|
108
|
+
{
|
|
109
|
+
$reflMethod = new ReflectionMethod(PHPMailer::class, 'parseEmailString');
|
|
110
|
+
(\PHP_VERSION_ID < 80100) && $reflMethod->setAccessible(true);
|
|
111
|
+
$parsed = $reflMethod->invoke(null, $addrstr);
|
|
112
|
+
(\PHP_VERSION_ID < 80100) && $reflMethod->setAccessible(false);
|
|
113
|
+
$this->assertEquals($parsed, $expected);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Data provider for testParseEmailString.
|
|
118
|
+
*
|
|
119
|
+
* @return array The array is expected to have an `addrstr` and an `expected` key.
|
|
120
|
+
*/
|
|
121
|
+
public function dataParseEmailString()
|
|
122
|
+
{
|
|
123
|
+
return [
|
|
124
|
+
'Valid address: simple address' => [
|
|
125
|
+
'addrstr' => 'Joe User <joe@example.com>',
|
|
126
|
+
'expected' => ['name' => 'Joe User', 'email' => 'joe@example.com'],
|
|
127
|
+
],
|
|
128
|
+
'Valid address: simple address with double quotes' => [
|
|
129
|
+
'addrstr' => '"Joe User" <joe@example.com>',
|
|
130
|
+
'expected' => ['name' => 'Joe User', 'email' => 'joe@example.com'],
|
|
131
|
+
],
|
|
132
|
+
'Valid address: simple address with single quotes' => [
|
|
133
|
+
'addrstr' => '\'Joe User\' <joe@example.com>',
|
|
134
|
+
'expected' => ['name' => 'Joe User', 'email' => 'joe@example.com'],
|
|
135
|
+
],
|
|
136
|
+
'Valid address: complex address with single quotes' => [
|
|
137
|
+
'addrstr' => '\'Joe<User\' <joe@example.com>',
|
|
138
|
+
'expected' => ['name' => 'Joe<User', 'email' => 'joe@example.com'],
|
|
139
|
+
],
|
|
140
|
+
'Valid address: complex address with triangle bracket' => [
|
|
141
|
+
'addrstr' => '"test<stage" <test@example.com>',
|
|
142
|
+
'expected' => ['name' => 'test<stage', 'email' => 'test@example.com'],
|
|
143
|
+
],
|
|
144
|
+
];
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Test RFC822 address splitting using the PHPMailer implementation
|
|
149
|
+
*
|
|
150
|
+
* @dataProvider dataAddressSplitting
|
|
151
|
+
* @covers \PHPMailer\PHPMailer\PHPMailer::parseAddresses
|
|
152
|
+
*
|
|
153
|
+
* @requires extension imap
|
|
154
|
+
* @requires extension mbstring
|
|
155
|
+
*
|
|
156
|
+
* @param string $addrstr The address list string.
|
|
157
|
+
* @param array $expected The expected function output.
|
|
158
|
+
* @param string $charset Optional. The charset to use.
|
|
159
|
+
*/
|
|
160
|
+
public function testAddressSplitting($addrstr, $expected)
|
|
161
|
+
{
|
|
162
|
+
$parsed = PHPMailer::parseAddresses($addrstr, null, PHPMailer::CHARSET_UTF8);
|
|
163
|
+
|
|
164
|
+
$this->verifyExpectations($parsed, $expected);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Data provider.
|
|
169
|
+
*
|
|
170
|
+
* @return array The array is expected to have an `addrstr` and an `expected` key.
|
|
171
|
+
* The `expected` key should - as a minimum.
|
|
172
|
+
*/
|
|
173
|
+
public function dataAddressSplitting()
|
|
174
|
+
{
|
|
175
|
+
return [
|
|
176
|
+
// Test cases with valid addresses.
|
|
177
|
+
'Valid address: single address without name' => [
|
|
178
|
+
'addrstr' => 'joe@example.com',
|
|
179
|
+
'expected' => [
|
|
180
|
+
['name' => '', 'address' => 'joe@example.com'],
|
|
181
|
+
],
|
|
182
|
+
],
|
|
183
|
+
'Valid address: single address with name' => [
|
|
184
|
+
'addrstr' => 'Joe User <joe@example.com>',
|
|
185
|
+
'expected' => [
|
|
186
|
+
['name' => 'Joe User', 'address' => 'joe@example.com'],
|
|
187
|
+
],
|
|
188
|
+
],
|
|
189
|
+
'Valid address: single RFC2047 address folded onto multiple lines' => [
|
|
190
|
+
'addrstr' => "=?ISO-8859-1?Q?J=F6rg?=\r\n" .
|
|
191
|
+
' =?ISO-8859-1?Q?_M=FCller?= <xyz@example.com>',
|
|
192
|
+
'expected' => [
|
|
193
|
+
['name' => 'Jörg Müller', 'address' => 'xyz@example.com'],
|
|
194
|
+
],
|
|
195
|
+
],
|
|
196
|
+
'Valid address: single RFC2047 address with space encoded as _' => [
|
|
197
|
+
'addrstr' => '=?iso-8859-1?Q?Abcdefgh_ijklm=F1?= <xyz@example.com>',
|
|
198
|
+
'expected' => [
|
|
199
|
+
['name' => 'Abcdefgh ijklmñ', 'address' => 'xyz@example.com'],
|
|
200
|
+
],
|
|
201
|
+
],
|
|
202
|
+
'Valid address: single address, quotes within name' => [
|
|
203
|
+
'addrstr' => 'Tim "The Book" O\'Reilly <foo@example.com>',
|
|
204
|
+
'expected' => [
|
|
205
|
+
['name' => 'Tim The Book O\'Reilly', 'address' => 'foo@example.com'],
|
|
206
|
+
],
|
|
207
|
+
],
|
|
208
|
+
'Valid address: two addresses with names' => [
|
|
209
|
+
'addrstr' => 'Joe User <joe@example.com>, Jill User <jill@example.net>',
|
|
210
|
+
'expected' => [
|
|
211
|
+
['name' => 'Joe User', 'address' => 'joe@example.com'],
|
|
212
|
+
['name' => 'Jill User', 'address' => 'jill@example.net'],
|
|
213
|
+
],
|
|
214
|
+
],
|
|
215
|
+
'Valid address: two addresses with names, one without' => [
|
|
216
|
+
'addrstr' => 'Joe User <joe@example.com>,'
|
|
217
|
+
. 'Jill User <jill@example.net>,'
|
|
218
|
+
. 'frank@example.com,',
|
|
219
|
+
'expected' => [
|
|
220
|
+
['name' => 'Joe User', 'address' => 'joe@example.com'],
|
|
221
|
+
['name' => 'Jill User', 'address' => 'jill@example.net'],
|
|
222
|
+
['name' => '', 'address' => 'frank@example.com'],
|
|
223
|
+
],
|
|
224
|
+
],
|
|
225
|
+
'Valid address: multiple address, various formats, including one utf8-encoded names' => [
|
|
226
|
+
'addrstr' => 'joe@example.com, <me@example.com>, Joe Doe <doe@example.com>,' .
|
|
227
|
+
' "John O\'Groats" <johnog@example.net>,' .
|
|
228
|
+
' =?utf-8?B?0J3QsNC30LLQsNC90LjQtSDRgtC10YHRgtCw?= <encoded@example.org>,' .
|
|
229
|
+
' =?UTF-8?Q?Welcome_to_our_caf=C3=A9!?= =?ISO-8859-1?Q?_Willkommen_in_unserem_Caf=E9!?=' .
|
|
230
|
+
' =?KOI8-R?Q?_=F0=D2=C9=D7=C5=D4_=D7_=CE=C1=DB=C5_=CB=C1=C6=C5!?= <encoded3@example.org>',
|
|
231
|
+
'expected' => [
|
|
232
|
+
['name' => '', 'address' => 'joe@example.com'],
|
|
233
|
+
['name' => '', 'address' => 'me@example.com'],
|
|
234
|
+
['name' => 'Joe Doe', 'address' => 'doe@example.com'],
|
|
235
|
+
['name' => "John O'Groats", 'address' => 'johnog@example.net'],
|
|
236
|
+
['name' => 'Название теста', 'address' => 'encoded@example.org'],
|
|
237
|
+
[
|
|
238
|
+
'name' => 'Welcome to our café! Willkommen in unserem Café! Привет в наше кафе!',
|
|
239
|
+
'address' => 'encoded3@example.org'
|
|
240
|
+
],
|
|
241
|
+
]
|
|
242
|
+
],
|
|
243
|
+
|
|
244
|
+
// Test cases with invalid addresses.
|
|
245
|
+
'Invalid address: single address, incomplete email' => [
|
|
246
|
+
'addrstr' => 'Jill User <doug@>',
|
|
247
|
+
'expected' => [],
|
|
248
|
+
],
|
|
249
|
+
'Invalid address: single address, invalid characters in email' => [
|
|
250
|
+
'addrstr' => 'Joe User <{^c\@**Dog^}@cartoon.com>',
|
|
251
|
+
'expected' => [],
|
|
252
|
+
],
|
|
253
|
+
'Invalid address: multiple addresses, invalid periods' => [
|
|
254
|
+
'addrstr' => 'Joe User <joe@example.com.>, Jill User <jill.@example.net>',
|
|
255
|
+
'expected' => [],
|
|
256
|
+
],
|
|
257
|
+
];
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Test decodeHeader using the PHPMailer
|
|
262
|
+
* with the Mbstring extension available.
|
|
263
|
+
*
|
|
264
|
+
* @dataProvider dataDecodeHeader
|
|
265
|
+
* @covers \PHPMailer\PHPMailer\PHPMailer::decodeHeader
|
|
266
|
+
*
|
|
267
|
+
* @requires extension mbstring
|
|
268
|
+
*
|
|
269
|
+
* @param string $addrstr The header string.
|
|
270
|
+
* @param array $expected The expected function output.
|
|
271
|
+
*/
|
|
272
|
+
public function testDecodeHeader($str, $expected)
|
|
273
|
+
{
|
|
274
|
+
$parsed = PHPMailer::decodeHeader($str, PHPMailer::CHARSET_UTF8);
|
|
275
|
+
|
|
276
|
+
$this->assertEquals($parsed, $expected);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Data provider for decodeHeader.
|
|
281
|
+
*
|
|
282
|
+
* @return array The array is expected to have an `addrstr` and an `expected` key.
|
|
283
|
+
* The `expected` key should - as a minimum - have a single value.
|
|
284
|
+
*/
|
|
285
|
+
public function dataDecodeHeader()
|
|
286
|
+
{
|
|
287
|
+
return [
|
|
288
|
+
'UTF-8 B-encoded' => [
|
|
289
|
+
'name' => '=?utf-8?B?0J3QsNC30LLQsNC90LjQtSDRgtC10YHRgtCw?=',
|
|
290
|
+
'expected' => 'Название теста',
|
|
291
|
+
],
|
|
292
|
+
'UTF-8 Q-encoded' => [
|
|
293
|
+
'name' => '=?UTF-8?Q?=D0=9D=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8?=' .
|
|
294
|
+
' =?UTF-8?Q?=D0=B5_=D1=82=D0=B5=D1=81=D1=82=D0=B0?=',
|
|
295
|
+
'expected' => 'Название теста',
|
|
296
|
+
],
|
|
297
|
+
'UTF-8 Q-encoded with multiple wrong labels and space encoded as _' => [
|
|
298
|
+
'name' => '=?UTF-8?Q?Welcome_to_our_caf=C3=A9!?= =?ISO-8859-1?Q?_Willkommen_in_unserem_Caf=E9!?=' .
|
|
299
|
+
' =?KOI8-R?Q?_=F0=D2=C9=D7=C5=D4_=D7_=CE=C1=DB=C5_=CB=C1=C6=C5!?=',
|
|
300
|
+
'expected' => 'Welcome to our café! Willkommen in unserem Café! Привет в наше кафе!',
|
|
301
|
+
],
|
|
302
|
+
'ISO-8859-1 Q-encoded' => [
|
|
303
|
+
'name' => '=?ISO-8859-1?Q?Willkommen_in_unserem_Caf=E9!?=',
|
|
304
|
+
'expected' => 'Willkommen in unserem Café!',
|
|
305
|
+
],
|
|
306
|
+
'Valid but wrongly labeled UTF-8 as ISO-8859-1' => [
|
|
307
|
+
'name' => '=?iso-8859-1?B?5pyD6K2w5a6k?=',
|
|
308
|
+
'expected' => "æ\xC2\x9C\xC2\x83è°å®¤",
|
|
309
|
+
],
|
|
310
|
+
'SMTPUTF8 encoded' => [
|
|
311
|
+
'name' => '=?UTF-8?B?SGVsbG8g8J+MjSDkuJbnlYwgY2Fmw6k=?=',
|
|
312
|
+
'expected' => 'Hello 🌍 世界 café',
|
|
313
|
+
],
|
|
314
|
+
'Multiple lines' => [
|
|
315
|
+
'name' => '=?UTF-8?B?0YLQtdGB0YIg0YLQtdGB0YIg0YLQtdGB0YIg0YLQtdGB0YIg0YLQtdGB0YIg?='
|
|
316
|
+
. "\n =?UTF-8?B?0YLQtdGB0YIg0YLQtdGB0YI=?=",
|
|
317
|
+
'expected' => 'тест тест тест тест тест тест тест',
|
|
318
|
+
],
|
|
319
|
+
];
|
|
320
|
+
}
|
|
321
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* PHPMailer - PHP email transport unit tests.
|
|
5
|
+
* PHP version 5.5.
|
|
6
|
+
*
|
|
7
|
+
* @author Marcus Bointon <phpmailer@synchromedia.co.uk>
|
|
8
|
+
* @author Andy Prevost
|
|
9
|
+
* @copyright 2012 - 2020 Marcus Bointon
|
|
10
|
+
* @copyright 2004 - 2009 Andy Prevost
|
|
11
|
+
* @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html GNU Lesser General Public License
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
namespace PHPMailer\Test\PHPMailer;
|
|
15
|
+
|
|
16
|
+
use PHPMailer\PHPMailer\PHPMailer;
|
|
17
|
+
use PHPMailer\Test\TestCase;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Test IDN to ASCII functionality.
|
|
21
|
+
*
|
|
22
|
+
* @covers \PHPMailer\PHPMailer\PHPMailer::punyencodeAddress
|
|
23
|
+
*/
|
|
24
|
+
final class PunyencodeAddressTest extends TestCase
|
|
25
|
+
{
|
|
26
|
+
/**
|
|
27
|
+
* Test IDN to ASCII form/punycode conversion for an email address.
|
|
28
|
+
*
|
|
29
|
+
* @requires extension mbstring
|
|
30
|
+
* @requires function idn_to_ascii
|
|
31
|
+
*
|
|
32
|
+
* @dataProvider dataPunyencodeAddressConversion
|
|
33
|
+
*
|
|
34
|
+
* @param string $input Input text string.
|
|
35
|
+
* @param string $charset The character set.
|
|
36
|
+
* @param string $expected Expected function output.
|
|
37
|
+
*/
|
|
38
|
+
public function testPunyencodeAddressConversion($input, $charset, $expected)
|
|
39
|
+
{
|
|
40
|
+
$this->Mail->CharSet = $charset;
|
|
41
|
+
|
|
42
|
+
$input = html_entity_decode($input, ENT_COMPAT, $charset);
|
|
43
|
+
$expected = html_entity_decode($expected, ENT_COMPAT, $charset);
|
|
44
|
+
|
|
45
|
+
$result = $this->Mail->punyencodeAddress($input);
|
|
46
|
+
$this->assertSame($expected, $result);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Data provider.
|
|
51
|
+
*
|
|
52
|
+
* @return array
|
|
53
|
+
*/
|
|
54
|
+
public function dataPunyencodeAddressConversion()
|
|
55
|
+
{
|
|
56
|
+
return [
|
|
57
|
+
// This source file is in UTF-8, so characters here are in native charset.
|
|
58
|
+
'UTF8' => [
|
|
59
|
+
'input' => 'test@françois.ch',
|
|
60
|
+
'charset' => PHPMailer::CHARSET_UTF8,
|
|
61
|
+
'expected' => 'test@xn--franois-xxa.ch',
|
|
62
|
+
],
|
|
63
|
+
// To force working another charset, decode an ASCII string to avoid literal string charset issues.
|
|
64
|
+
'ISO88591' => [
|
|
65
|
+
'input' => 'test@françois.ch',
|
|
66
|
+
'charset' => PHPMailer::CHARSET_ISO88591,
|
|
67
|
+
'expected' => 'test@xn--franois-xxa.ch',
|
|
68
|
+
],
|
|
69
|
+
'Decode only domain' => [
|
|
70
|
+
'input' => 'françois@françois.ch',
|
|
71
|
+
'charset' => PHPMailer::CHARSET_UTF8,
|
|
72
|
+
'expected' => 'françois@xn--franois-xxa.ch',
|
|
73
|
+
],
|
|
74
|
+
'IDN conversion flags' => [
|
|
75
|
+
'input' => 'test@fußball.test',
|
|
76
|
+
'charset' => PHPMailer::CHARSET_UTF8,
|
|
77
|
+
'expected' => 'test@xn--fuball-cta.test',
|
|
78
|
+
],
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Test IDN to ASCII form/punycode conversion returns the original value when no conversion
|
|
84
|
+
* is needed or when the requirements to convert an address have not been met.
|
|
85
|
+
*
|
|
86
|
+
* @dataProvider dataPunyencodeAddressNoConversion
|
|
87
|
+
*
|
|
88
|
+
* @param string $input Input text string.
|
|
89
|
+
* @param string $charset The character set.
|
|
90
|
+
* @param string $expected Expected function output.
|
|
91
|
+
*/
|
|
92
|
+
public function testPunyencodeAddressNoConversion($input, $charset, $expected)
|
|
93
|
+
{
|
|
94
|
+
$this->Mail->CharSet = $charset;
|
|
95
|
+
|
|
96
|
+
// Prevent a warning about html_entity_decode() not supporting charset `us-ascii`.
|
|
97
|
+
if ($charset !== PHPMailer::CHARSET_ASCII) {
|
|
98
|
+
$input = html_entity_decode($input, ENT_COMPAT, $charset);
|
|
99
|
+
$expected = html_entity_decode($expected, ENT_COMPAT, $charset);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
$result = $this->Mail->punyencodeAddress($input);
|
|
103
|
+
$this->assertSame($expected, $result);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Data provider.
|
|
108
|
+
*
|
|
109
|
+
* @return array
|
|
110
|
+
*/
|
|
111
|
+
public function dataPunyencodeAddressNoConversion()
|
|
112
|
+
{
|
|
113
|
+
return [
|
|
114
|
+
'ASCII' => [
|
|
115
|
+
'input' => 'test@example.com',
|
|
116
|
+
'charset' => PHPMailer::CHARSET_ASCII,
|
|
117
|
+
'expected' => 'test@example.com',
|
|
118
|
+
],
|
|
119
|
+
'Invalid email address' => [
|
|
120
|
+
'input' => 'françois@',
|
|
121
|
+
'charset' => PHPMailer::CHARSET_UTF8,
|
|
122
|
+
'expected' => 'françois@',
|
|
123
|
+
],
|
|
124
|
+
'Not an email address' => [
|
|
125
|
+
'input' => 'testing 1-2-3',
|
|
126
|
+
'charset' => PHPMailer::CHARSET_UTF8,
|
|
127
|
+
'expected' => 'testing 1-2-3',
|
|
128
|
+
],
|
|
129
|
+
'Empty string' => [
|
|
130
|
+
'input' => '',
|
|
131
|
+
'charset' => PHPMailer::CHARSET_UTF8,
|
|
132
|
+
'expected' => '',
|
|
133
|
+
],
|
|
134
|
+
'Empty charset' => [
|
|
135
|
+
'input' => 'test@françois.ch',
|
|
136
|
+
'charset' => '',
|
|
137
|
+
'expected' => 'test@françois.ch',
|
|
138
|
+
],
|
|
139
|
+
];
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* PHPMailer - PHP email transport unit tests.
|
|
5
|
+
* PHP version 5.5.
|
|
6
|
+
*
|
|
7
|
+
* @author Marcus Bointon <phpmailer@synchromedia.co.uk>
|
|
8
|
+
* @author Andy Prevost
|
|
9
|
+
* @copyright 2012 - 2020 Marcus Bointon
|
|
10
|
+
* @copyright 2004 - 2009 Andy Prevost
|
|
11
|
+
* @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html GNU Lesser General Public License
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
namespace PHPMailer\Test\PHPMailer;
|
|
15
|
+
|
|
16
|
+
use PHPMailer\PHPMailer\PHPMailer;
|
|
17
|
+
use Yoast\PHPUnitPolyfills\TestCases\TestCase;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Test quoted string functionality.
|
|
21
|
+
*
|
|
22
|
+
* @covers \PHPMailer\PHPMailer\PHPMailer::quotedString
|
|
23
|
+
*/
|
|
24
|
+
final class QuotedStringTest extends TestCase
|
|
25
|
+
{
|
|
26
|
+
/**
|
|
27
|
+
* Test quoting of a string depending on the content of the string.
|
|
28
|
+
*
|
|
29
|
+
* @dataProvider dataQuotedString
|
|
30
|
+
*
|
|
31
|
+
* @param string $input Input text string.
|
|
32
|
+
* @param string $expected Expected function output.
|
|
33
|
+
*/
|
|
34
|
+
public function testQuotedString($input, $expected)
|
|
35
|
+
{
|
|
36
|
+
$result = PHPMailer::quotedString($input);
|
|
37
|
+
self::assertSame($expected, $result);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Data provider.
|
|
42
|
+
*
|
|
43
|
+
* @return array
|
|
44
|
+
*/
|
|
45
|
+
public function dataQuotedString()
|
|
46
|
+
{
|
|
47
|
+
return [
|
|
48
|
+
'No special chars' => [
|
|
49
|
+
'input' => 'phpmailer.png',
|
|
50
|
+
'expected' => 'phpmailer.png',
|
|
51
|
+
],
|
|
52
|
+
'Text containing double quote char' => [
|
|
53
|
+
'input' => 'phpmailer_mini".png',
|
|
54
|
+
'expected' => '"phpmailer_mini\".png"',
|
|
55
|
+
],
|
|
56
|
+
'Text containing pre-escaped double quote char' => [
|
|
57
|
+
'input' => 'phpmailer_mini\".png',
|
|
58
|
+
'expected' => '"phpmailer_mini\\\".png"',
|
|
59
|
+
],
|
|
60
|
+
'Text containing spaces' => [
|
|
61
|
+
'input' => 'PHPMailer card logo.png',
|
|
62
|
+
'expected' => '"PHPMailer card logo.png"',
|
|
63
|
+
],
|
|
64
|
+
'Text containing variety of "special" chars' => [
|
|
65
|
+
'input' => 'php@ma;ler=m:ni,p<g>?q=[foo]',
|
|
66
|
+
'expected' => '"php@ma;ler=m:ni,p<g>?q=[foo]"',
|
|
67
|
+
],
|
|
68
|
+
];
|
|
69
|
+
}
|
|
70
|
+
}
|