From 04154859c629d06b1b3a04e9da218233f7956ecd Mon Sep 17 00:00:00 2001 From: "James (DPC)" Date: Fri, 3 Feb 2023 15:02:40 +1100 Subject: [PATCH 1/9] Update minimum requirements + supporting dev files --- .gitattributes | 23 ++++++++++++----------- .gitignore | 7 +------ .php_cs.dist => .php-cs-fixer.dist.php | 4 ++-- composer.json | 12 +++++------- phpcs.xml.dist | 11 ----------- phpstan.neon.dist | 6 ------ 6 files changed, 20 insertions(+), 43 deletions(-) rename .php_cs.dist => .php-cs-fixer.dist.php (91%) delete mode 100644 phpcs.xml.dist delete mode 100644 phpstan.neon.dist diff --git a/.gitattributes b/.gitattributes index 0d97623..6d32411 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,11 +1,12 @@ -/tests export-ignore -/docs export-ignore -/client/src export-ignore -/.gitattributes export-ignore -/.gitignore export-ignore -/.php_cs.dist -/phpcs.xml.dist -/phpstan.neon.dist -/phpunit.xml.dist -/.waratah export-ignore -/README.md export-ignore +/tests export-ignore +/docs export-ignore +/client/src export-ignore +/.editorconfig export-ignore +/.gitattributes export-ignore +/.gitignore export-ignore +/.php-cs-fixer.dist.php export-ignore +/phpunit.xml.dist export-ignore +/.waratah export-ignore +/code-of-conduct.md export-ignore +/CONTRIBUTING.md export-ignore +/README.md export-ignore diff --git a/.gitignore b/.gitignore index 3fe0b45..afc1cdc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,4 @@ /client/node_modules /vendor/ .DS_Store -/.php_cs.cache -/resources/ -/_resources/ -/public/ -/assets/ -/tests/__output/ +/.php-cs-fixer.cache diff --git a/.php_cs.dist b/.php-cs-fixer.dist.php similarity index 91% rename from .php_cs.dist rename to .php-cs-fixer.dist.php index 4faac27..f9b7107 100644 --- a/.php_cs.dist +++ b/.php-cs-fixer.dist.php @@ -7,8 +7,8 @@ $finder = PhpCsFixer\Finder::create() ->in(__DIR__); -return PhpCsFixer\Config::create() - ->setRules([ +$config = new PhpCsFixer\Config(); +return $config->setRules([ '@PSR2' => true, 'array_indentation' => true, 'array_syntax' => ['syntax' => 'short'], diff --git a/composer.json b/composer.json index 0bae02e..806e73c 100644 --- a/composer.json +++ b/composer.json @@ -17,20 +17,18 @@ } ], "require": { - "silverstripe/framework": "^4", + "silverstripe/framework": "^4.10", "league/html-to-markdown": "^5", - "spatie/schema-org": "^3.4", - "nswdpc/silverstripe-taggable-notifications": "dev-master" + "spatie/schema-org": "^3.5", + "nswdpc/silverstripe-taggable-notifications": "<1" }, "suggest": { "ext-xml": "Use DOMDocument to process HTML documents", "ext-tidy": "Use tidy to process HTML documents" }, "require-dev": { - "phpunit/phpunit": "^5.7", - "squizlabs/php_codesniffer": "^3.0", - "friendsofphp/php-cs-fixer": "^2.18", - "symbiote/silverstripe-phpstan": "^4", + "phpunit/phpunit": "^9.5", + "friendsofphp/php-cs-fixer": "^3", "silverstripe/sqlite3": "^2" } } diff --git a/phpcs.xml.dist b/phpcs.xml.dist deleted file mode 100644 index fe58f6f..0000000 --- a/phpcs.xml.dist +++ /dev/null @@ -1,11 +0,0 @@ - - - CodeSniffer ruleset for SilverStripe coding conventions. - - - - - - - - diff --git a/phpstan.neon.dist b/phpstan.neon.dist deleted file mode 100644 index 4eff0b7..0000000 --- a/phpstan.neon.dist +++ /dev/null @@ -1,6 +0,0 @@ -parameters: - autoload_directories: - - src - - tests -includes: - - vendor/symbiote/silverstripe-phpstan/phpstan.neon From ab351080726db557c811a22f32228571759284d2 Mon Sep 17 00:00:00 2001 From: "James (DPC)" Date: Fri, 3 Feb 2023 15:22:27 +1100 Subject: [PATCH 2/9] Add back in required entry --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index afc1cdc..5a6b194 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /vendor/ .DS_Store /.php-cs-fixer.cache +/tests/__output/ From 128f06666d4d505b48653f7b5a3b9e499622d22d Mon Sep 17 00:00:00 2001 From: "James (DPC)" Date: Fri, 3 Feb 2023 15:22:39 +1100 Subject: [PATCH 3/9] Update URL --- README.md | 6 +++--- docs/en/001_index.md | 2 +- docs/en/003_decorator.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8719dbd..28fa69c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## Structured email handling for Silverstripe -The goal of this module is to produce simple and easy-to-digest emails ([more](./docs/en/001_index.md)). The templates used are based on the [Postmark Transactional Email Templates](https://github.com/wildbit/postmark-templates). +The goal of this module is to produce simple and easy-to-digest emails ([more](./docs/en/001_index.md)). The templates used are based on the [Postmark Transactional Email Templates](https://github.com/ActiveCampaign/postmark-templates). > :warning: This module is under active development and shouldn't be used in production just yet as there are probably bugs. Test results, pull requests and feedback are welcome. @@ -29,7 +29,7 @@ If the class encounters a complete HTML document in the email, it will use HTML ## Resources + E-mail support across clients: https://www.caniemail.com -+ Postmark templates: https://github.com/wildbit/postmark-templates ++ Postmark templates: https://github.com/ActiveCampaign/postmark-templates ## Quick example @@ -75,7 +75,7 @@ composer require nswdpc/silverstripe-structured-email + [dpcdigital@NSWDPC:~$](https://dpc.nsw.gov.au) -The source of the HTML email templates is the [Postmark templates project](https://github.com/wildbit/postmark-templates) +The source of the HTML email templates is the [Postmark templates project](https://github.com/ActiveCampaign/postmark-templates) ## Bugtracker diff --git a/docs/en/001_index.md b/docs/en/001_index.md index 2846f37..a26998f 100644 --- a/docs/en/001_index.md +++ b/docs/en/001_index.md @@ -10,7 +10,7 @@ This module handles the templating of the email, leaving you to figure out what We add: -+ Standard, proven email templates based on https://github.com/wildbit/postmark-templates ++ Standard, proven email templates based on https://github.com/ActiveCampaign/postmark-templates + A Structured Email class + An Injectable email decorator containing standard CSS values + Structured template parts allowing you to override as required diff --git a/docs/en/003_decorator.md b/docs/en/003_decorator.md index 6b0b026..8d73906 100644 --- a/docs/en/003_decorator.md +++ b/docs/en/003_decorator.md @@ -67,7 +67,7 @@ print get_class($decorator); ### Set the layout type -A layout type allows you some control over the HTML width ([more](https://github.com/wildbit/mailmason/wiki/Project-Structure#layouts)) +A layout type allows you some control over the HTML width ([more](https://github.com/ActiveCampaign/mailmason/wiki/Project-Structure#layouts)) + basic-full = full width + basic = single centred column From e1d9cd218553c9cde66510ab8234bf2b4c298cf5 Mon Sep 17 00:00:00 2001 From: "James (DPC)" Date: Fri, 3 Feb 2023 15:27:03 +1100 Subject: [PATCH 4/9] Update postmark-templates --- thirdparty/postmark-templates/README.md | 41 +- .../comment-notification/content.html | 9 +- .../comment-notification/content.txt | 2 - .../basic-full/dunning/content.html | 553 ++++++++++++++++++ .../basic-full/dunning/content.txt | 38 ++ .../basic-full/example/content.html | 23 +- .../basic-full/example/content.txt | 6 +- .../basic-full/invoice/content.html | 13 +- .../basic-full/invoice/content.txt | 4 +- .../password-reset-help/content.html | 13 +- .../password-reset-help/content.txt | 4 +- .../basic-full/password-reset/content.html | 13 +- .../basic-full/password-reset/content.txt | 4 +- .../basic-full/receipt/content.html | 19 +- .../basic-full/receipt/content.txt | 4 +- .../basic-full/trial-expired/content.html | 13 +- .../basic-full/trial-expired/content.txt | 4 +- .../basic-full/trial-expiring/content.html | 13 +- .../basic-full/trial-expiring/content.txt | 4 +- .../basic-full/user-invitation/content.html | 13 +- .../basic-full/user-invitation/content.txt | 4 +- .../basic-full/welcome/content.html | 13 +- .../basic-full/welcome/content.txt | 4 +- .../basic/comment-notification/content.html | 9 +- .../basic/comment-notification/content.txt | 2 - .../basic/dunning/content.html | 548 +++++++++++++++++ .../basic/dunning/content.txt | 38 ++ .../basic/example/content.html | 23 +- .../basic/example/content.txt | 6 +- .../basic/invoice/content.html | 13 +- .../basic/invoice/content.txt | 4 +- .../basic/password-reset-help/content.html | 13 +- .../basic/password-reset-help/content.txt | 4 +- .../basic/password-reset/content.html | 13 +- .../basic/password-reset/content.txt | 4 +- .../basic/receipt/content.html | 19 +- .../basic/receipt/content.txt | 4 +- .../basic/trial-expired/content.html | 13 +- .../basic/trial-expired/content.txt | 4 +- .../basic/trial-expiring/content.html | 13 +- .../basic/trial-expiring/content.txt | 4 +- .../basic/user-invitation/content.html | 13 +- .../basic/user-invitation/content.txt | 4 +- .../basic/welcome/content.html | 13 +- .../basic/welcome/content.txt | 4 +- .../plain/comment-notification/content.html | 9 +- .../plain/comment-notification/content.txt | 2 - .../plain/dunning/content.html | 540 +++++++++++++++++ .../plain/dunning/content.txt | 38 ++ .../plain/example/content.html | 23 +- .../plain/example/content.txt | 6 +- .../plain/invoice/content.html | 13 +- .../plain/invoice/content.txt | 4 +- .../plain/password-reset-help/content.html | 13 +- .../plain/password-reset-help/content.txt | 4 +- .../plain/password-reset/content.html | 13 +- .../plain/password-reset/content.txt | 4 +- .../plain/receipt/content.html | 19 +- .../plain/receipt/content.txt | 4 +- .../plain/trial-expired/content.html | 13 +- .../plain/trial-expired/content.txt | 4 +- .../plain/trial-expiring/content.html | 13 +- .../plain/trial-expiring/content.txt | 4 +- .../plain/user-invitation/content.html | 13 +- .../plain/user-invitation/content.txt | 4 +- .../plain/welcome/content.html | 13 +- .../plain/welcome/content.txt | 4 +- .../comment-notification/content.html | 20 +- .../comment-notification/content.txt | 2 - .../templates/basic-full/dunning/content.html | 531 +++++++++++++++++ .../templates/basic-full/dunning/content.txt | 38 ++ .../templates/basic-full/example/content.html | 24 +- .../templates/basic-full/example/content.txt | 6 +- .../templates/basic-full/invoice/content.html | 22 +- .../templates/basic-full/invoice/content.txt | 4 +- .../password-reset-help/content.html | 22 +- .../password-reset-help/content.txt | 4 +- .../basic-full/password-reset/content.html | 22 +- .../basic-full/password-reset/content.txt | 4 +- .../templates/basic-full/receipt/content.html | 24 +- .../templates/basic-full/receipt/content.txt | 4 +- .../basic-full/trial-expired/content.html | 22 +- .../basic-full/trial-expired/content.txt | 4 +- .../basic-full/trial-expiring/content.html | 22 +- .../basic-full/trial-expiring/content.txt | 4 +- .../basic-full/user-invitation/content.html | 22 +- .../basic-full/user-invitation/content.txt | 4 +- .../templates/basic-full/welcome/content.html | 22 +- .../templates/basic-full/welcome/content.txt | 4 +- .../basic/comment-notification/content.html | 5 +- .../basic/comment-notification/content.txt | 2 - .../templates/basic/dunning/content.html | 531 +++++++++++++++++ .../templates/basic/dunning/content.txt | 38 ++ .../templates/basic/example/content.html | 9 +- .../templates/basic/example/content.txt | 6 +- .../templates/basic/invoice/content.html | 7 +- .../templates/basic/invoice/content.txt | 4 +- .../basic/password-reset-help/content.html | 7 +- .../basic/password-reset-help/content.txt | 4 +- .../basic/password-reset/content.html | 7 +- .../basic/password-reset/content.txt | 4 +- .../templates/basic/receipt/content.html | 9 +- .../templates/basic/receipt/content.txt | 4 +- .../basic/trial-expired/content.html | 7 +- .../templates/basic/trial-expired/content.txt | 4 +- .../basic/trial-expiring/content.html | 7 +- .../basic/trial-expiring/content.txt | 4 +- .../basic/user-invitation/content.html | 7 +- .../basic/user-invitation/content.txt | 4 +- .../templates/basic/welcome/content.html | 7 +- .../templates/basic/welcome/content.txt | 4 +- .../plain/comment-notification/content.html | 5 +- .../plain/comment-notification/content.txt | 2 - .../templates/plain/dunning/content.html | 523 +++++++++++++++++ .../templates/plain/dunning/content.txt | 38 ++ .../templates/plain/example/content.html | 9 +- .../templates/plain/example/content.txt | 6 +- .../templates/plain/invoice/content.html | 7 +- .../templates/plain/invoice/content.txt | 4 +- .../plain/password-reset-help/content.html | 7 +- .../plain/password-reset-help/content.txt | 4 +- .../plain/password-reset/content.html | 7 +- .../plain/password-reset/content.txt | 4 +- .../templates/plain/receipt/content.html | 9 +- .../templates/plain/receipt/content.txt | 4 +- .../plain/trial-expired/content.html | 7 +- .../templates/plain/trial-expired/content.txt | 4 +- .../plain/trial-expiring/content.html | 7 +- .../plain/trial-expiring/content.txt | 4 +- .../plain/user-invitation/content.html | 7 +- .../plain/user-invitation/content.txt | 4 +- .../templates/plain/welcome/content.html | 7 +- .../templates/plain/welcome/content.txt | 4 +- 133 files changed, 3999 insertions(+), 528 deletions(-) create mode 100644 thirdparty/postmark-templates/templates-inlined/basic-full/dunning/content.html create mode 100644 thirdparty/postmark-templates/templates-inlined/basic-full/dunning/content.txt create mode 100644 thirdparty/postmark-templates/templates-inlined/basic/dunning/content.html create mode 100644 thirdparty/postmark-templates/templates-inlined/basic/dunning/content.txt create mode 100644 thirdparty/postmark-templates/templates-inlined/plain/dunning/content.html create mode 100644 thirdparty/postmark-templates/templates-inlined/plain/dunning/content.txt create mode 100644 thirdparty/postmark-templates/templates/basic-full/dunning/content.html create mode 100644 thirdparty/postmark-templates/templates/basic-full/dunning/content.txt create mode 100644 thirdparty/postmark-templates/templates/basic/dunning/content.html create mode 100644 thirdparty/postmark-templates/templates/basic/dunning/content.txt create mode 100644 thirdparty/postmark-templates/templates/plain/dunning/content.html create mode 100644 thirdparty/postmark-templates/templates/plain/dunning/content.txt diff --git a/thirdparty/postmark-templates/README.md b/thirdparty/postmark-templates/README.md index f3eb979..73c9c22 100644 --- a/thirdparty/postmark-templates/README.md +++ b/thirdparty/postmark-templates/README.md @@ -1,8 +1,8 @@ -Postmark Transactional Email Templates +Postmark Transactional Email Templates # Postmark Transactional Email Templates Brought to you by -Postmark +Postmark **Content ready, mobile friendly, and beautiful across all major email clients.** @@ -10,7 +10,7 @@ Brought to you by *Postmark Transactional Email Templates* are rock-solid email templates that render beautifully in tons of email clients. They provide the foundation of our [Postmark Templates](https://postmarkapp.com/blog/special-delivery-postmark-templates) feature, and we're glad to provide them as Open Source to the wider community. -These templates are built and maintained using [MailMason](https://github.com/wildbit/mailmason), a grunt-based framework to help streamline the process of developing, testing, and maintaining a set of related transactional email templates. If you want to create or customize your own set of email templates, you can use MailMason to extend the existing emails or start from scratch to build an entirely new set. +These templates are built and maintained using [MailMason](https://github.com/activecampaign/mailmason), a grunt-based framework to help streamline the process of developing, testing, and maintaining a set of related transactional email templates. If you want to create or customize your own set of email templates, you can use MailMason to extend the existing emails or start from scratch to build an entirely new set. ## CSS & Inlining @@ -19,7 +19,7 @@ There are two sets of templates here. The first set is in the `/templates` folde ### Inline the CSS For client compatibility, HTML emails should always be inlined before sending. Here are a couple of tools for doing that: -* [Postmark Style Merge](https://github.com/wildbit/style-merge) +* [Postmark Style Merge](https://github.com/activecampaign/style-merge) * [Premailer](https://github.com/premailer/premailer) If you choose to send your emails with [Postmark](http://postmarkapp.com), each time you send we will automagically inline the CSS for you. @@ -28,73 +28,80 @@ If you choose to send your emails with [Postmark](http://postmarkapp.com), each Each template comes in three different generic layout variations: Basic, Basic full, and Plain. This gives you a starting point so that you can customize your templates to match your brand. -Starter templates side-by-side: Basic, basic full, and plain -Dark mode compatibility +Starter templates side-by-side: Basic, basic full, and plain +Dark mode compatibility ### Welcome Send a welcome email to users after they sign up. - * 💌 Preview with layout: [Basic](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic/welcome/content.html), [Basic full](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic-full/welcome/content.html), [Plain](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/plain/welcome/content.html) + * 💌 Preview with layout: [Basic](https://newsletter.postmarkapp.com/assets/templates/dist/basic/welcome/content.html), [Basic full](https://newsletter.postmarkapp.com/assets/templates/dist/basic-full/welcome/content.html), [Plain](https://newsletter.postmarkapp.com/assets/templates/dist/plain/welcome/content.html) * 📔 [Welcome email best practices guide](https://postmarkapp.com/guides/welcome-email-best-practices) ### Reset Password Send users a link to reset their password. - * 💌 Preview with layout: [Basic](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic/password-reset/content.html), [Basic full](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic-full/password-reset/content.html), [Plain](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/plain/password-reset/content.html) + * 💌 Preview with layout: [Basic](https://newsletter.postmarkapp.com/assets/templates/dist/basic/password-reset/content.html), [Basic full](https://newsletter.postmarkapp.com/assets/templates/dist/basic-full/password-reset/content.html), [Plain](https://newsletter.postmarkapp.com/assets/templates/dist/plain/password-reset/content.html) * 📔 [Reset password best practices guide](https://postmarkapp.com/guides/password-reset-email-best-practices) ### Reset Password Help Help users reset their password if they can’t remember their email. - * 💌 Preview with layout: [Basic](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic/password-reset-help/content.html), [Basic full](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic-full/password-reset-help/content.html), [Plain](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/plain/password-reset-help/content.html) + * 💌 Preview with layout: [Basic](https://newsletter.postmarkapp.com/assets/templates/dist/basic/password-reset-help/content.html), [Basic full](https://newsletter.postmarkapp.com/assets/templates/dist/basic-full/password-reset-help/content.html), [Plain](https://newsletter.postmarkapp.com/assets/templates/dist/plain/password-reset-help/content.html) * 📔 [Reset password best practices guide](https://postmarkapp.com/guides/password-reset-email-best-practices) ### Receipt Send a receipt to users after they made a purchase. - * 💌 Preview with layout: [Basic](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic/receipt/content.html), [Basic full](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic-full/receipt/content.html), [Plain](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/plain/receipt/content.html) + * 💌 Preview with layout: [Basic](https://newsletter.postmarkapp.com/assets/templates/dist/basic/receipt/content.html), [Basic full](https://newsletter.postmarkapp.com/assets/templates/dist/basic-full/receipt/content.html), [Plain](https://newsletter.postmarkapp.com/assets/templates/dist/plain/receipt/content.html) * 📔 [Receipt and invoices best practices guide](https://postmarkapp.com/guides/receipt-and-invoice-email-best-practices) ### Invoice Request payment from a user. - * 💌 Preview with layout: [Basic](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic/invoice/content.html), [Basic full](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic-full/invoice/content.html), [Plain](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/plain/invoice/content.html) + * 💌 Preview with layout: [Basic](https://newsletter.postmarkapp.com/assets/templates/dist/basic/invoice/content.html), [Basic full](https://newsletter.postmarkapp.com/assets/templates/dist/basic-full/invoice/content.html), [Plain](https://newsletter.postmarkapp.com/assets/templates/dist/plain/invoice/content.html) * 📔 [Receipt and invoices best practices guide](https://postmarkapp.com/guides/receipt-and-invoice-email-best-practices) +### Dunning + +Let users know about a failed payment + +* 💌 Preview with layout: [Basic](https://newsletter.postmarkapp.com/assets/templates/dist/basic/dunning/content.html), [Basic full](https://newsletter.postmarkapp.com/assets/templates/dist/basic-full/dunning/content.html), [Plain](https://newsletter.postmarkapp.com/assets/templates/dist/plain/dunning/content.html) +* 📔 [Dunning best practices guide](https://postmarkapp.com/guides/dunning) + ### Comment notification Notify users of new comments by other users. -**Note:** Comment notification isn't the prettiest preview because it's just [Mustachio](https://github.com/wildbit/mustachio). Since almost all content in this email is dynamic, it won't look good without real content. Don't worry though, that's how it's supposed to look. +**Note:** Comment notification isn't the prettiest preview because it's just [Mustachio](https://github.com/activecampaign/mustachio). Since almost all content in this email is dynamic, it won't look good without real content. Don't worry though, that's how it's supposed to look. - * 💌 Preview with layout: [Basic](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic/comment-notification/content.html), [Basic full](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic-full/comment-notification/content.html), [Plain](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/plain/comment-notification/content.html) + * 💌 Preview with layout: [Basic](https://newsletter.postmarkapp.com/assets/templates/dist/basic/comment-notification/content.html), [Basic full](https://newsletter.postmarkapp.com/assets/templates/dist/basic-full/comment-notification/content.html), [Plain](https://newsletter.postmarkapp.com/assets/templates/dist/plain/comment-notification/content.html) * 📔 [Comment notification best practices guide](https://postmarkapp.com/guides/comment-notification-email-best-practices) ### Trial Expiring Let users know when their trial is about to expire. - * 💌 Preview with layout: [Basic](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic/trial-expiring/content.html), [Basic full](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic-full/trial-expiring/content.html), [Plain](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/plain/trial-expiring/content.html) + * 💌 Preview with layout: [Basic](https://newsletter.postmarkapp.com/assets/templates/dist/basic/trial-expiring/content.html), [Basic full](https://newsletter.postmarkapp.com/assets/templates/dist/basic-full/trial-expiring/content.html), [Plain](https://newsletter.postmarkapp.com/assets/templates/dist/plain/trial-expiring/content.html) * 📔 [Trial expiration email best practices](https://postmarkapp.com/guides/trial-expiration-email-best-practices) ### Trial Expired Let users know when their expired trial. - * 💌 Preview with layout: [Basic](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic/trial-expired/content.html), [Basic full](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic-full/trial-expired/content.html), [Plain](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/plain/trial-expired/content.html) - * 📔 [Trial expiration email best pracitces](https://postmarkapp.com/guides/trial-expiration-email-best-practices) + * 💌 Preview with layout: [Basic](https://newsletter.postmarkapp.com/assets/templates/dist/basic/trial-expired/content.html), [Basic full](https://newsletter.postmarkapp.com/assets/templates/dist/basic-full/trial-expired/content.html), [Plain](https://newsletter.postmarkapp.com/assets/templates/dist/plain/trial-expired/content.html) + * 📔 [Trial expiration email best practices](https://postmarkapp.com/guides/trial-expiration-email-best-practices) ### User Invitation Help users invite others to use your software. - * 💌 Preview with layout: [Basic](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic/user-invitation/content.html), [Basic full](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/basic-full/user-invitation/content.html), [Plain](https://s3.amazonaws.com/assets.wildbit.com/postmark/templates/dist/plain/user-invitation/content.html) + * 💌 Preview with layout: [Basic](https://newsletter.postmarkapp.com/assets/templates/dist/basic/user-invitation/content.html), [Basic full](https://newsletter.postmarkapp.com/assets/templates/dist/basic-full/user-invitation/content.html), [Plain](https://newsletter.postmarkapp.com/assets/templates/dist/plain/user-invitation/content.html) * 📔 [User invitation email best practices](https://postmarkapp.com/guides/user-invitation-email-best-practices) diff --git a/thirdparty/postmark-templates/templates-inlined/basic-full/comment-notification/content.html b/thirdparty/postmark-templates/templates-inlined/basic-full/comment-notification/content.html index 0f51761..aa7f6ca 100644 --- a/thirdparty/postmark-templates/templates-inlined/basic-full/comment-notification/content.html +++ b/thirdparty/postmark-templates/templates-inlined/basic-full/comment-notification/content.html @@ -1,5 +1,5 @@ - + @@ -103,6 +103,10 @@ .align-center { text-align: center; } + + .u-margin-bottom-none { + margin-bottom: 0; + } /* Buttons ------------------------------ */ .button { @@ -468,7 +472,7 @@ - + @@ -504,7 +508,6 @@ - @@ -533,7 +537,7 @@

- Default button + Default button @@ -580,12 +584,12 @@

Example Closing

Thanks, -
[Sender Name] and the [Product Name] Team

+
[Sender Name] and the [Product Name] team

P.S. Need help getting started? Check out our help documentation. Or, just reply to this email with any questions or issues you have. The [Product Name] support team is always excited to help you.


Discount Code

- + @@ -628,7 +632,6 @@

-

© 2021 [Product Name]. All rights reserved.

[Company Name, LLC]
1234 Street Rd. diff --git a/thirdparty/postmark-templates/templates-inlined/basic-full/example/content.txt b/thirdparty/postmark-templates/templates-inlined/basic-full/example/content.txt index b21497d..7858957 100644 --- a/thirdparty/postmark-templates/templates-inlined/basic-full/example/content.txt +++ b/thirdparty/postmark-templates/templates-inlined/basic-full/example/content.txt @@ -6,7 +6,7 @@ This is example text for the preheader set via the YAML front-matter for each em Escaped Handlebars Brackets *************************** -Working with templates, you'll occasionally need to put some Mustachio ( https://github.com/wildbit/mustachio ) code in your Handlebars templates. To prevent the Handlebars processing from attempting to process your Mustachio code, you'll need to escape the curly braces by adding a backslash just before the opening curly braces. +Working with templates, you'll occasionally need to put some Mustachio ( https://github.com/activecampaign/mustachio ) code in your Handlebars templates. To prevent the Handlebars processing from attempting to process your Mustachio code, you'll need to escape the curly braces by adding a backslash just before the opening curly braces. \{{ something }} will turn into {{ something }} @@ -81,7 +81,7 @@ Example Closing *************** Thanks, -[Sender Name] and the [Product Name] Team +[Sender Name] and the [Product Name] team P.S. Need help getting started? Check out our help documentation. Or, just reply to this email with any questions or issues you have. The [Product Name] support team is always excited to help you. @@ -111,8 +111,6 @@ If you’re having trouble clicking the confirm account button, copy and paste t {{action_url}} ( {{ action_url }} ) -© 2021 [Product Name]. All rights reserved. - [Company Name, LLC] 1234 Street Rd. diff --git a/thirdparty/postmark-templates/templates-inlined/basic-full/invoice/content.html b/thirdparty/postmark-templates/templates-inlined/basic-full/invoice/content.html index 15c0d52..f9160d9 100644 --- a/thirdparty/postmark-templates/templates-inlined/basic-full/invoice/content.html +++ b/thirdparty/postmark-templates/templates-inlined/basic-full/invoice/content.html @@ -1,5 +1,5 @@ - + @@ -103,6 +103,10 @@ .align-center { text-align: center; } + + .u-margin-bottom-none { + margin-bottom: 0; + } /* Buttons ------------------------------ */ .button { @@ -469,7 +473,7 @@ - + @@ -508,7 +512,7 @@

@@ -555,7 +559,7 @@

If you have any questions about this invoice, simply reply to this email or reach out to our support team for help.

Cheers, -
The [Product Name] Team

+
The [Product Name] team

@@ -576,7 +580,6 @@ -

If you do not use [Product Name] or did not request a password reset, please ignore this email or contact support if you have questions.

Thanks, -
The [Product Name] Team

+
The [Product Name] team

@@ -516,7 +520,6 @@ -