CINXE.COM
Latest Updates | Postmark
<!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title> Latest Updates | Postmark </title> <meta name="description" content="Keep up-to-date with new Postmark features and product changes."> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="globalsign-domain-verification" content="F0n5fUwYguswb99EGyC5qD87O15uv5VBUiX9yRrxX6"> <meta name="theme-color" content="#FFDE00"> <script>dataLayer = [{'siteType': 'landing', 'visitorIP': '8.222.208.146', 'doNotTrack': 0 }];</script> <link href="https://postmarkapp.com/dist/css/core.233bca689f85085cd63f.css" rel="stylesheet"> <link href="https://postmarkapp.com/dist/css/postmark.8eefa6ea9c9eef999806.css" rel="stylesheet"> <link rel="dns-prefetch" href="https://ssl.google-analytics.com"> <link rel="dns-prefetch" href="https://www.google-analytics.com"> <link rel="shortcut icon" href="/images/favicon.ico"> <link rel="apple-touch-icon" href="/images/apple-touch-icon.png"> <link rel="canonical" href="https://postmarkapp.com/updates"> <meta property="og:url" content="https://postmarkapp.com/updates"> <meta property="og:type" content="website"> <meta property="fb:app_id" content="244883355940334"> <meta property="og:title" content="Latest Updates"> <meta property="og:description" content="Keep up-to-date with new Postmark features and product changes."> <meta property="og:image" content="https://craft-assets.postmarkapp.com/blog/_facebook/sharing-changelog.png"> <meta property="og:image:type" content="image/png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"> <meta name="twitter:title" content="Latest Updates"> <meta name="twitter:description" content="Keep up-to-date with new Postmark features and product changes."> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image" content="https://craft-assets.postmarkapp.com/blog/_twitter/5466/sharing-changelog.jpg"> <meta name="twitter:site" content="@postmarkapp"> <meta name="slack-app-id" content="A8LSJN934"> <link rel="alternate" href="https://postmarkapp.com/updates/feed.atom" type="application/atom+xml" title="Latest Updates"> </head> <body> <div class="alert alert--info alert--centered" id="alert-346478"> <div class="u-container alert_container"> <div class="alert_message"> <strong>Grow with us: Join Postmark's new referral partner program and start earning</strong> </div> <div class="alert_actions"> <a href="https://postmarkapp.com/lp/referral-partner-program" target="_blank" class="cta-btn cta-btn--inverted">Learn more</a> </div> </div> <a href="#" class="alert_dismiss" data-id="346478">x</a> </div> <header class="header "> <div class="u-container header_container"> <div class="header_branding"> <a href="https://postmarkapp.com/" class="header_postmark-logo">Postmark</a> <div class="header_actions"> <a href="https://account.postmarkapp.com/login" class="header_login cta-btn cta-btn--small ">Log In</a> <button class="header_hamburger js-nav-mobile-button" aria-haspopup="true"> <span></span> <span></span> <span></span> </button> </div> </div> <nav class="nav nav--header nav--desktop" role="navigation" aria-label="Main"> <ul class="nav_list"> <li class="nav_item "> <a href="https://postmarkapp.com/why" class="nav_link">Why Postmark?</a> </li> <li class="nav_item nav_item--dropdown"> <button class="nav_link js-nav-popup" aria-haspopup="true" aria-expanded="false" data-target=".js-dropdown-product">Product</button> <div class="nav_dropdown js-dropdown-product"> <div class="nav_dropdown-wrapper nav_dropdown-wrapper--product"> <div class="nav_features"> <h2 class="nav_sub-heading nav_sub-heading--features">Features</h2> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/email-api" class="nav_link"> <span class="nav_icon nav_icon--email-api"></span> <span class="nav_title">Email API</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/smtp-service" class="nav_link"> <span class="nav_icon nav_icon--smtp"></span> <span class="nav_title">SMTP Service</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/message-streams" class="nav_link"> <span class="nav_icon nav_icon--streams"></span> <span class="nav_title">Message Streams</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/transactional-email" class="nav_link"> <span class="nav_icon nav_icon--transactional"></span> <span class="nav_title">Transactional Email</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/email-delivery" class="nav_link"> <span class="nav_icon nav_icon--delivery"></span> <span class="nav_title">Email Delivery</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/email-templates" class="nav_link"> <span class="nav_icon nav_icon--templates"></span> <span class="nav_title">Email Templates</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/inbound-email" class="nav_link"> <span class="nav_icon nav_icon--inbound"></span> <span class="nav_title">Inbound Email</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/email-analytics" class="nav_link"> <span class="nav_icon nav_icon--insight"></span> <span class="nav_title">Analytics & Retention</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/integrations" class="nav_link"> <span class="nav_icon nav_icon--integrations"></span> <span class="nav_title">Integrations</span> </a> </li> </ul> </div> <div class="nav_sub"> <h2 class="nav_sub-heading"> <span class="nav_icon nav_icon--for"></span> <span class="nav_text">Postmark For</span> </h2> <ul class="nav_list"> <li><a href="https://postmarkapp.com/for/agencies" class="nav_sub-link">Agencies</a></li> <li><a href="https://postmarkapp.com/for/enterprise" class="nav_sub-link">Enterprise</a></li> <li><a href="https://postmarkapp.com/for/startups" class="nav_sub-link">Startups</a></li> <li><a href="https://postmarkapp.com/for/bootstrapped-startups" class="nav_sub-link">Bootstrapped Startups</a></li> <li><a href="https://postmarkapp.com/for/side-projects" class="nav_sub-link">Side Projects</a></li> </ul> <h2 class="nav_sub-heading u-pad-top--xs"> <span class="nav_icon nav_icon--versus"></span> <span class="nav_text">Postmark vs.</span> </h2> <ul class="nav_list"> <li><a href="https://postmarkapp.com/compare/sendgrid-alternative" class="nav_sub-link">SendGrid</a></li> <li><a href="https://postmarkapp.com/compare/mailgun-alternative" class="nav_sub-link">Mailgun</a></li> <li><a href="https://postmarkapp.com/compare/amazon-ses-alternative" class="nav_sub-link">Amazon SES</a></li> <li><a href="https://postmarkapp.com/compare/sparkpost-alternative" class="nav_sub-link">SparkPost</a></li> <li><a href="https://postmarkapp.com/compare/mandrill-alternative" class="nav_sub-link">Mandrill</a></li> </ul> </div> </div> </div> </li> <li class="nav_item"> <a href="https://postmarkapp.com/pricing" class="nav_link">Pricing</a> </li> <li class="nav_item nav_item--dropdown"> <button class="nav_link js-nav-popup" aria-haspopup="true" aria-expanded="false" data-target=".js-dropdown-resources">Resources</button> <div class="nav_dropdown js-dropdown-resources"> <div class="nav_dropdown-wrapper"> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/blog" class="nav_link"> <span class="nav_icon nav_icon--blog"></span> <span class="nav_title">Blog</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/developer" class="nav_link"> <span class="nav_icon nav_icon--api-docs"></span> <span class="nav_title">API Documentation</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/manual" class="nav_link"> <span class="nav_icon nav_icon--manual"></span> <span class="nav_title">Getting Started</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/guides" class="nav_link"> <span class="nav_icon nav_icon--guides"></span> <span class="nav_title">Email Guides</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/postmark-express" class="nav_link"> <span class="nav_icon nav_icon--comic"></span> <span class="nav_title">Email Comic</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/webinars" class="nav_link"> <span class="nav_icon nav_icon--webinars"></span> <span class="nav_title">Webinars</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/videos" class="nav_link"> <span class="nav_icon nav_icon--videos"></span> <span class="nav_title">Videos</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/podcast" class="nav_link"> <span class="nav_icon nav_icon--podcast"></span> <span class="nav_title">Podcast</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/labs" class="nav_link"> <span class="nav_icon nav_icon--labs"></span> <span class="nav_title">Labs</span> </a> </li> <li class="nav_item"> <a href="https://dmarcdigests.com" target="_blank" rel="noopener" class="nav_link"> <span class="nav_icon nav_icon--dmarc"></span> <span class="nav_title">DMARC Digests</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/glossary" class="nav_link"> <span class="nav_icon nav_icon--glossary"></span> <span class="nav_title">Glossary</span> </a> </li> </ul> </div> </div> </li> <li class="nav_item nav_item--dropdown"> <button class="nav_link js-nav-popup" aria-haspopup="true" aria-expanded="false" data-target=".js-dropdown-help">Help</button> <div class="nav_dropdown js-dropdown-help"> <div class="nav_dropdown-wrapper"> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/support" class="nav_link"> <span class="nav_icon nav_icon--support"></span> <span class="nav_title">Support Center</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/contact" class="nav_link"> <span class="nav_icon nav_icon--contact"></span> <span class="nav_title">Contact Support</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/talk-to-sales" class="nav_link"> <span class="nav_icon nav_icon--contact-sales"></span> <span class="nav_title">Talk to Sales</span> </a> </li> <li class="nav_item"> <a href="https://status.postmarkapp.com/" target="_blank" rel="noopener noreferrer" class="nav_link"> <span class="nav_icon nav_icon--status"></span> <span class="nav_title">Status</span> </a> </li> </ul> </div> </div> </li> <li class="nav_item nav_item--btn"> <a href="https://account.postmarkapp.com/login" class="nav_btn cta-btn ">Log in</a> </li> <li class="nav_item nav_item--btn"> <a href="https://account.postmarkapp.com/sign_up" class="nav_btn cta-btn cta-btn--default js-signup" data-track="Click" data-category="Signup Button" data-label="Header">Start free trial</a> </li> </ul> </nav> <div class="nav-mobile js-nav-mobile hidden--at-l-2"> <img src="/images/logo-stamp-simple.svg" class="nav-mobile_logo" /> <nav class="nav nav--header nav--mobile" role="navigation" aria-label="Main"> <ul class="nav_list"> <li class="nav_item "> <a href="https://postmarkapp.com/why" class="nav_link">Why Postmark?</a> </li> <li class="nav_item nav_item--dropdown"> <button class="nav_link js-nav-popup" aria-haspopup="true" aria-expanded="false" data-target=".js-dropdown-product">Product</button> <div class="nav_dropdown js-dropdown-product"> <div class="nav_dropdown-wrapper nav_dropdown-wrapper--product"> <div class="nav_features"> <h2 class="nav_sub-heading nav_sub-heading--features">Features</h2> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/email-api" class="nav_link"> <span class="nav_icon nav_icon--email-api"></span> <span class="nav_title">Email API</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/smtp-service" class="nav_link"> <span class="nav_icon nav_icon--smtp"></span> <span class="nav_title">SMTP Service</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/message-streams" class="nav_link"> <span class="nav_icon nav_icon--streams"></span> <span class="nav_title">Message Streams</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/transactional-email" class="nav_link"> <span class="nav_icon nav_icon--transactional"></span> <span class="nav_title">Transactional Email</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/email-delivery" class="nav_link"> <span class="nav_icon nav_icon--delivery"></span> <span class="nav_title">Email Delivery</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/email-templates" class="nav_link"> <span class="nav_icon nav_icon--templates"></span> <span class="nav_title">Email Templates</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/inbound-email" class="nav_link"> <span class="nav_icon nav_icon--inbound"></span> <span class="nav_title">Inbound Email</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/email-analytics" class="nav_link"> <span class="nav_icon nav_icon--insight"></span> <span class="nav_title">Analytics & Retention</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/integrations" class="nav_link"> <span class="nav_icon nav_icon--integrations"></span> <span class="nav_title">Integrations</span> </a> </li> </ul> </div> <div class="nav_sub"> <h2 class="nav_sub-heading"> <span class="nav_icon nav_icon--for"></span> <span class="nav_text">Postmark For</span> </h2> <ul class="nav_list"> <li><a href="https://postmarkapp.com/for/agencies" class="nav_sub-link">Agencies</a></li> <li><a href="https://postmarkapp.com/for/enterprise" class="nav_sub-link">Enterprise</a></li> <li><a href="https://postmarkapp.com/for/startups" class="nav_sub-link">Startups</a></li> <li><a href="https://postmarkapp.com/for/bootstrapped-startups" class="nav_sub-link">Bootstrapped Startups</a></li> <li><a href="https://postmarkapp.com/for/side-projects" class="nav_sub-link">Side Projects</a></li> </ul> <h2 class="nav_sub-heading u-pad-top--xs"> <span class="nav_icon nav_icon--versus"></span> <span class="nav_text">Postmark vs.</span> </h2> <ul class="nav_list"> <li><a href="https://postmarkapp.com/compare/sendgrid-alternative" class="nav_sub-link">SendGrid</a></li> <li><a href="https://postmarkapp.com/compare/mailgun-alternative" class="nav_sub-link">Mailgun</a></li> <li><a href="https://postmarkapp.com/compare/amazon-ses-alternative" class="nav_sub-link">Amazon SES</a></li> <li><a href="https://postmarkapp.com/compare/sparkpost-alternative" class="nav_sub-link">SparkPost</a></li> <li><a href="https://postmarkapp.com/compare/mandrill-alternative" class="nav_sub-link">Mandrill</a></li> </ul> </div> </div> </div> </li> <li class="nav_item"> <a href="https://postmarkapp.com/pricing" class="nav_link">Pricing</a> </li> <li class="nav_item nav_item--dropdown"> <button class="nav_link js-nav-popup" aria-haspopup="true" aria-expanded="false" data-target=".js-dropdown-resources">Resources</button> <div class="nav_dropdown js-dropdown-resources"> <div class="nav_dropdown-wrapper"> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/blog" class="nav_link"> <span class="nav_icon nav_icon--blog"></span> <span class="nav_title">Blog</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/developer" class="nav_link"> <span class="nav_icon nav_icon--api-docs"></span> <span class="nav_title">API Documentation</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/manual" class="nav_link"> <span class="nav_icon nav_icon--manual"></span> <span class="nav_title">Getting Started</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/guides" class="nav_link"> <span class="nav_icon nav_icon--guides"></span> <span class="nav_title">Email Guides</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/postmark-express" class="nav_link"> <span class="nav_icon nav_icon--comic"></span> <span class="nav_title">Email Comic</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/webinars" class="nav_link"> <span class="nav_icon nav_icon--webinars"></span> <span class="nav_title">Webinars</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/videos" class="nav_link"> <span class="nav_icon nav_icon--videos"></span> <span class="nav_title">Videos</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/podcast" class="nav_link"> <span class="nav_icon nav_icon--podcast"></span> <span class="nav_title">Podcast</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/labs" class="nav_link"> <span class="nav_icon nav_icon--labs"></span> <span class="nav_title">Labs</span> </a> </li> <li class="nav_item"> <a href="https://dmarcdigests.com" target="_blank" rel="noopener" class="nav_link"> <span class="nav_icon nav_icon--dmarc"></span> <span class="nav_title">DMARC Digests</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/glossary" class="nav_link"> <span class="nav_icon nav_icon--glossary"></span> <span class="nav_title">Glossary</span> </a> </li> </ul> </div> </div> </li> <li class="nav_item nav_item--dropdown"> <button class="nav_link js-nav-popup" aria-haspopup="true" aria-expanded="false" data-target=".js-dropdown-help">Help</button> <div class="nav_dropdown js-dropdown-help"> <div class="nav_dropdown-wrapper"> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/support" class="nav_link"> <span class="nav_icon nav_icon--support"></span> <span class="nav_title">Support Center</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/contact" class="nav_link"> <span class="nav_icon nav_icon--contact"></span> <span class="nav_title">Contact Support</span> </a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/talk-to-sales" class="nav_link"> <span class="nav_icon nav_icon--contact-sales"></span> <span class="nav_title">Talk to Sales</span> </a> </li> <li class="nav_item"> <a href="https://status.postmarkapp.com/" target="_blank" rel="noopener noreferrer" class="nav_link"> <span class="nav_icon nav_icon--status"></span> <span class="nav_title">Status</span> </a> </li> </ul> </div> </div> </li> <li class="nav_item nav_item--btn"> <a href="https://account.postmarkapp.com/login" class="nav_btn cta-btn ">Log in</a> </li> <li class="nav_item nav_item--btn"> <a href="https://account.postmarkapp.com/sign_up" class="nav_btn cta-btn cta-btn--default js-signup" data-track="Click" data-category="Signup Button" data-label="Header">Start free trial</a> </li> </ul> </nav> <div class="nav-mobile_extras"> <a href="https://account.postmarkapp.com/sign_up" class="cta-btn cta-btn--default cta-btn--medium js-signup" data-track="Click" data-category="Signup Button" data-label="Header (Mobile)">Start free trial</a> <p class="nav-mobile_login">Already have an account? <a href="https://account.postmarkapp.com/login">Log in →</a></p> </div> </div> </div> </header> <div class="page u-clearfix"> <div class="u-beige-bg"> <div class="hero hero--centered hero--updates hero--bordered"> <img src="/images/updates.svg" alt="Mail icon with notification bubble" class="hero_icon"> <h1 class="hero_title title-hero">Latest updates</h1> <nav class="nav nav--updates"> <ul class="nav_list"> <li class="nav_item nav_item--current"><a href="https://postmarkapp.com/updates" class="nav_link">All</a></li> <li class="nav_item "><a href="https://postmarkapp.com/updates/type/web" class="nav_link nav_link--web">Web</a></li> <li class="nav_item "><a href="https://postmarkapp.com/updates/type/mobile" class="nav_link nav_link--mobile">Mobile</a></li> <li class="nav_item "><a href="https://postmarkapp.com/updates/type/api" class="nav_link nav_link--api">API</a></li> <li class="nav_item "><a href="https://postmarkapp.com/updates/type/labs" class="nav_link nav_link--labs">Labs</a></li> <li class="nav_item "><a href="https://postmarkapp.com/updates/type/libraries" class="nav_link nav_link--libraries">Libraries</a></li> <li class="nav_item "><a href="https://postmarkapp.com/updates/type/company" class="nav_link nav_link--company">Company</a></li> </ul> </nav></div> <div class="u-container u-container--narrow updates updates--overlap"> <div id="november-2024"></div> <div class="update " id="introducing-the-postman-collection-for-postmark"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/introducing-the-postman-collection-for-postmark" class="update_date">November 13, 2024</a> </div> <h2 class="update_title"><a href="https://god.gw.postman.com/run-collection/15802082-f50b3ffc-9eee-4ab1-bdc5-8b423d19d535?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D15802082-f50b3ffc-9eee-4ab1-bdc5-8b423d19d535%26entityType%3Dcollection%26workspaceId%3D55e9c6f2-5d69-40a5-b00b-caec1640454c">Introducing the Postman collection for Postmark</a></h2> <div class="update_intro"><p>We're excited to announce the release of the Postman Collection for Postmark! This collection is designed to make integrating Postmark's email API simpler and more intuitive.</p></div> <a href="#" class="update_more-link" data-toggle="#introducing-the-postman-collection-for-postmark">Show details</a> </div> <div class="update_body"> <p>Whether you're sending transactional emails or managing templates, the Postman Collection helps developers streamline API calls without having to start from scratch.</p><p>Postman is a widely used tool among developers for API testing and workflow automation. By launching our official Postman Collection, we're making it easier to explore and utilize Postmark’s features directly within Postman. The collection includes pre-configured requests for sending emails, managing server settings, and handling templates. </p><h2>How to get started</h2><p><a href="https://god.gw.postman.com/run-collection/15802082-f50b3ffc-9eee-4ab1-bdc5-8b423d19d535?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D15802082-f50b3ffc-9eee-4ab1-bdc5-8b423d19d535%26entityType%3Dcollection%26workspaceId%3D55e9c6f2-5d69-40a5-b00b-caec1640454c">Jump into the Postman workspace</a>, import the collection, and start experimenting with Postmark’s robust email capabilities. We also wrote a <a href="https://postmarkapp.com/blog/announcing-the-postman-collection-for-postmark">detailed blogpost</a> to guide you through setup and best practices</p> </div> </div> <h2 class="updates_date" id="december-2023"><a href="#december-2023">December, 2023</a></h2> <div class="update " id="updates-to-postmarks-js-and-php-libraries"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/libraries" class="update_type update_type--libraries">Libraries</a> <a href="https://postmarkapp.com/updates/updates-to-postmarks-js-and-php-libraries" class="update_date">December 13, 2023</a> </div> <h2 class="update_title">Updates to Postmark’s JS and PHP libraries</h2> <div class="update_intro"><p dir="ltr">We’ve got libraries in most popular languages to make it as easy as possible for you to add Postmark to your projects. Last month, our engineers made improvements to two of our most popular libraries: <br /></p></div> <a href="#" class="update_more-link" data-toggle="#updates-to-postmarks-js-and-php-libraries">Show details</a> </div> <div class="update_body"> <h2>JS library updates</h2> <p dir="ltr">We released a new major version (4.0.0) of our Node JS library. This version now relies on newer libraries for improved security. With this release, we no longer support Node versions that have reached end of life, so you’ll need to use <a href="https://endoflife.date/nodejs">Node</a> version v14.0.0 or later. If you use older Node versions for which <a href="https://endoflife.date/nodejs">active and security support ended</a>, you will need to use older library versions (3.x.x).</p> <p dir="ltr">Check out the <a href="https://github.com/ActiveCampaign/postmark.js">Postmark JS library</a> and view all the <a href="https://github.com/ActiveCampaign/postmark.js/releases">changes we’ve made</a>. </p> <h2>PHP library updates</h2> <p dir="ltr">We have a new engineer on the Postmark team (Welcome <a href="https://github.com/ewood-ac">Eli</a>! 🙌) and he has given our PHP library some much needed love. You can check out all details in the <a href="https://github.com/ActiveCampaign/postmark-php/releases">release notes</a> but in a nutshell:</p> <ul><li dir="ltr"><p dir="ltr">We closed out all open issues and worked through most open PRs from the community (thanks for your contributions, friends!)</p></li><li dir="ltr"><p dir="ltr">We added Postmark’s new Data Removal API to the library.</p></li><li dir="ltr"><p dir="ltr">We updated the unit test framework.</p></li></ul> <p dir="ltr">Check out the <a href="https://github.com/ActiveCampaign/postmark-php">Postmark PHP library</a> and view all the <a href="https://github.com/ActiveCampaign/postmark-php/releases">changes we’ve made</a>. </p> <p dir="ltr">If you have any questions or feedback about the changes, <a href="https://postmarkapp.com/contact">we’d love to hear from you</a>. <br></p> </div> </div> <div class="update " id="data-removal-api"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/data-removal-api" class="update_date">December 8, 2023</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/contact">Introducing the Postmark Data Removal API</a></h2> <div class="update_intro"><p>You can now erase recipient data from your Postmark account with the help of our new Data Removal endpoint.</p></div> <a href="#" class="update_more-link" data-toggle="#data-removal-api">Show details</a> </div> <div class="update_body"> <p dir="ltr">Previously, if you needed to delete any recipient data from your Postmark account, you would reach out to our support team who would process the data removal on your behalf. </p> <p dir="ltr">Earlier this summer, our team started working on a solution for data deletion requests via our <a href="https://postmarkapp.com/blog/experimentation-weeks-how-serving-our-support-team-leads-to-a-better-customer-experience#introducing-a-data-deletion-request-api">”Help a CS friend out” Experimentation week</a>: a new API endpoint that would make this process easier for customers and Postmark's Customer Support team.</p> <p dir="ltr">Now, with our new Data Removal API you can automate the whole process, erasing recipient data from your Postmark account, and reviewing the status of a Data Removal request. </p> <p dir="ltr">With this new endpoint, you can:</p> <ul><li dir="ltr"><p dir="ltr">Remove blockers in the Data Subject Request (DSR) process</p></li><li dir="ltr"><p dir="ltr">Remain GDPR and CCPA compliant</p></li><li dir="ltr"><p dir="ltr">Gain peace of mind for yourself and your clients</p></li></ul> <p dir="ltr">Since this endpoint erases data, we have it turned off by default - <a href="https://postmarkapp.com/contact">reach out to us in support</a> and we can enable it for your account. Check out <a href="https://postmarkapp.com/developer/api/data-removals-api">our API documentation</a> to learn more.</p> <h3><strong>More options for putting data removal on auto-pilot</strong><br></h3> <p>Another option for automating the data removal process (without having to implement a new API) is our <a href="https://postmarkapp.com/blog/introducing-the-postmark-retention-add-on">Retention Add-On</a>, a handy add-on that lets you control how long Postmark keeps your data.</p> <p> By default, Postmark stores message content and activity data for 45 days, but with this add-on, you can decrease your data retention and make sure Postmark will purge all customer data after 7 or 28 days. This is a great option for all senders who frequently deal with DSR requests under GDPR.<br></p> </div> </div> <h2 class="updates_date" id="october-2023"><a href="#october-2023">October, 2023</a></h2> <div class="update " id="changes-to-email-api-validation-action-may-be-required"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/changes-to-email-api-validation-action-may-be-required" class="update_date">October 31, 2023</a> </div> <h2 class="update_title">Changes to Email API validation – Action may be required</h2> <div class="update_intro"><p dir="ltr">We're making some improvements to our API infrastructure and as a result, we're changing how we handle the validation of your API requests. </p> <p dir="ltr">In the past, Postmark's email API has been pretty forgiving to requests that are passed incorrectly. In some cases, we've accepted invalid request headers and incorrectly passed JSON body key/value pairs—even if they didn't match our <a href="https://postmarkapp.com/developer/api/email-api">API documentation</a>. Going forward, we'll start to reject invalid requests and return an error message instead.</p> <p dir="ltr">So if you see Postmark return error messages to API requests that were previously accepted without issues, please double-check if your request is <em>actually</em> valid. We recommend using a tool such as <a href="https://jsonlint.com/">JSONLint</a> to check your request payloads for any obvious validation errors, and if that shows no issues then refer to our <a href="https://postmarkapp.com/developer/api/email-api">API documentation </a>pages and make sure your request matches the schema(s) we are expecting.<br /></p> <p dir="ltr">Here are some common reasons why your request might be invalid.</p></div> <a href="#" class="update_more-link" data-toggle="#changes-to-email-api-validation-action-may-be-required">Show details</a> </div> <div class="update_body"> <h3><strong>Timeline</strong></h3> <p>We’ll release the new API infrastructure on November 28th, 2023 but we’ll be running a set of blackout periods before where all traffic is sent over the new Email API infrastructure. Along with greyouts before where some traffic is sent to the new API infrastructure to help surface possible issues. Here’s what to expect:</p><ul><li dir="ltr"><p dir="ltr">Up until November 28th greyouts where a small subset of traffic is sent through the new infrastructure. </p></li><li dir="ltr"><p dir="ltr"><strong>November 15th: </strong>First blackout period<strong> </strong>from 10:00am -12:00pm ET (2 hours)</p></li><li dir="ltr"><p dir="ltr"><strong>November 15th: </strong>Second blackout period from 5:00pm - 7:00pm (2 hours)</p></li><li dir="ltr"><p dir="ltr"><strong>November 28th: </strong>New API infrastructure is released for Email API.</p></li></ul><h3><strong>What’s changing</strong></h3> <p dir="ltr">There are two places where a request made to our Email API could be invalid:<br></p> <ul><li dir="ltr"><p dir="ltr"><strong>Content-Type and Accept header</strong>s<br>If your request headers do not include <code>"Accept: application/json"</code> and <code>"Content-Type: application/json"</code>, or these headers are set to different values such as <code>"application/www-x-form-urlencoded"</code>, this will result in a <strong>415 </strong>error status code.</p></li><li dir="ltr"><strong>JSON request body</strong><br>Please make sure your request body is valid JSON and has the correct field types. For example: <ul><li dir="ltr"><p dir="ltr">Array and object fields (such as Headers, Attachments and Metadata) should not be passed as strings. If no value is required, simply leave the field out (or provide an empty array/object.) </p></li><li dir="ltr"><p dir="ltr"><a href="https://www.json.org/json-en.html" target="_blank">JSON strings must be wrapped in double quotes</a>. Single quotes are not valid JSON string wrappers and will result in an error</p></li><li dir="ltr"><p dir="ltr">Newlines are not valid within JSON, unless they are properly escaped (ie. “\n”). This is particularly relevant for <code>HtmlBody</code> and <code>TextBody</code> fields, which often contains newline characters</p></li><li dir="ltr"><p dir="ltr">The above would result in a <strong>422 </strong>status code response from our API.</p></li></ul></li></ul> <p dir="ltr">This applies to the following API endpoints:<br></p> <ul> <li><code>https://api.postmarkapp.com/email/</code></li> <li><code>https://api.postmarkapp.com/email/batch</code></li><li><code>https://api.postmarkapp.com/email/withTemplate</code></li><li><code>https://api.postmarkapp.com/email/batchwithTemplate</code></li> </ul> <p>Here are some examples:</p> <p><strong>I</strong><strong>nvalid Headers</strong><strong></strong></p> <pre><code>curl "https://api.postmarkapp.com/email/withTemplate" \ -X POST \ -H "Accept: application/json" \ -H "Content-Type: application/www-x-form-urlencoded" \ -H "X-Postmark-Server-Token: server token" \</code></pre> <p dir="ltr"><strong>Valid Headers</strong></p> <pre><code>curl "https://api.postmarkapp.com/email/withTemplate" \ -X POST \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "X-Postmark-Server-Token: server token" \</code></pre> <p dir="ltr"><strong>Invalid JSON request body</strong><br><strong><br></strong></p> <pre><code>{ … "Headers":"", … }</code></pre> <p><strong>Valid JSON Request Body</strong><strong><br></strong></p> <pre><code> { … "Headers": [ { "Name": "CUSTOM-HEADER", "Value": "value" } ], … } </code></pre> <p><strong>Invalid HtmlBody with newlines</strong></p> <p></p> <pre><code>{ "HtmlBody": "<html> <body> <div>This is not valid</div> </body> </html>" }</code></pre> <p></p> <p><strong>Valid <strong>HtmlBody with newlines</strong> </strong></p> <p></p> <pre><code>{ "HtmlBody": "<html>\n<body>\n<div>This is valid</div>\n</body>\n</html>" }</code></pre> <h3>What you need to do</h3> <p dir="ltr">For messages that are failing with a 415 response code, you’ll want to review the <strong>Accept</strong> and <strong>Content-Type</strong> request headers to ensure they match our documented headers for the <a href="https://postmarkapp.com/developer/api/email-api">Email API endpoint</a>. If there is a header that is missing, or is not set to <strong>application/json</strong>, you’ll need to add or update them accordingly.</p> <p dir="ltr">If you’re receiving a 422 “Invalid request” response, review our <a href="https://postmarkapp.com/developer/api/email-api">Email API</a> endpoint documentation to ensure you’re passing the correct field types as documented. </p> <p dir="ltr">If you have any questions or need any help troubleshooting issues, <a href="https://postmarkapp.com/contact" target="_blank">please let us know</a>.</p> <p><br></p> <p dir="ltr"></p> <p><br></p> </div> </div> <h2 class="updates_date" id="july-2023"><a href="#july-2023">July, 2023</a></h2> <div class="update " id="static-ip-deprecation-postmark-will-no-longer-support-ip-allow-listing"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/static-ip-deprecation-postmark-will-no-longer-support-ip-allow-listing" class="update_date">July 18, 2023</a> </div> <h2 class="update_title">Static IP Deprecation: Postmark will no longer support IP allow-listing for our API</h2> <div class="update_intro"><p dir="ltr">In the coming weeks, we’ll be making some changes to Postmark that will result in our API no longer being accessible on a static set of IPs. As such... </p><ul><li><strong>IP allowlisting for our API will no longer be supported starting August 23, 2023.</strong></li><li><strong>This change only applies to Postmark’s API and does not affect our SMTP and Webhook IPs.<br /></strong></li></ul></div> <a href="#" class="update_more-link" data-toggle="#static-ip-deprecation-postmark-will-no-longer-support-ip-allow-listing">Show details</a> </div> <div class="update_body"> <h2 dir="ltr">Why are things changing?</h2> <p dir="ltr">Postmark’s infrastructure has changed a lot over the years, evolving from physical datacenter racks to an <a href="https://postmarkapp.com/blog/how-we-moved-postmark-to-aws">almost completely cloud-based system</a>. We are using more and more managed services that provide a more secure and maintainable platform for Postmark so we can provide you with a more reliable and more scalable product. As a side effect of this, it is becoming increasingly difficult to support static, predictable IPs for various parts of our system.</p> <h2>Timeline </h2> <p dir="ltr">We’ll retire support for static IPs on August 23, 2023 but we’ll be running a set of blackout periods before that to help you (and us!) catch any issues. Here’s what to expect: <br></p> <ul><li dir="ltr"><p dir="ltr"><strong>July 26: First blackout period</strong><br>From 12.00pm-12.30pm ET (30 min)</p></li><li dir="ltr"><p dir="ltr"><strong>August 2: Second blackout period<br></strong>From 6.00am-6.30am ET (30 min)</p></li><li dir="ltr"><p dir="ltr"><strong>August 9: Third blackout period</strong><br>From 4.00am to 4.00pm ET (12 hours)</p></li><li dir="ltr"><p dir="ltr"><strong>August 23: Final Cutoff</strong></p></li></ul> <p></p> <h2>My Postmark setup relies on allowlisting. What do I need to do now?<br></h2> <p></p> <p>We realize this change may be disruptive for some folks who rely on allowlisting, but there are a few alternative solutions you may wish to consider:<br></p> <ul><li dir="ltr"><p dir="ltr"><strong>DNS lookups</strong><br>If you wish to continue allowlisting specific IPs, you may do so by performing DNS lookups to obtain the active IPs our API is advertising at any given time. This can be done by querying the A record for <strong>api.postmarkapp.com</strong> (ie. <strong>nslookup</strong>) at regular intervals based on the record’s TTL, and using this list of IPs to generate whitelist rules for your outbound traffic.<br></p></li><li dir="ltr"><p dir="ltr"><strong>Host header allowlisting</strong><br>You may wish to configure your proxy/firewall to allow traffic based on the “Host” header (if it supports this functionality). This is a simple solution that requires very little effort, and is decoupled from IP addresses, although the downside is that the host header is more susceptible to forging than IP addresses (ie. host header injection). In some scenarios this may not be a desirable option.<br></p></li><li dir="ltr"><p dir="ltr"><strong>IP range allowlisting</strong><br>There is a range of IPs that we can predict for our API, and thus we can provide a CIDR block that would cover this range, however it is a truly massive range (AWS infrastructure covers a huge portion of internet addresses) and it largely defeats the purpose of allowlisting. However, it is an alternative in case you have no other options.</p></li></ul> <p>We understand that these solutions aren’t on par with the static IP allowlisting that you might have in place right now, but we hope these approaches provide a helpful starting point for you to implement a solution that meets your requirements. If you have any questions or need any guidance around the specific products you may be using, just <a href="mailto:support@postmarkapp.com">let us know</a>. We’re happy to help!</p> </div> </div> <div class="update " id="postmarks-invoice-emails-now-include-a-pdf-receipt"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/postmarks-invoice-emails-now-include-a-pdf-receipt" class="update_date">July 18, 2023</a> </div> <h2 class="update_title">Postmark's invoice emails now include a PDF receipt</h2> <div class="update_intro"><p>This is a small update, and one that's been bothering some of you for a while: Postmark's invoice emails now include a PDF receipt, making bookkeeping less cumbersome. </p></div> <a href="#" class="update_more-link" data-toggle="#postmarks-invoice-emails-now-include-a-pdf-receipt">Show details</a> </div> <div class="update_body"> <p>In the past, when you (or your accountant) wanted to grab a PDF copy of your Postmark invoices for record keeping, you had to log into your Postmark account, navigate to the billing section, and generate a PDF copy. That's clearly not a fun process—especially when you have to repeat this process monthly. </p> <p>Starting today, you'll no longer have to go through that trouble. Your PDF receipt will be attached to your invoice email, so it will automatically land in your inbox whenever we process a payment. </p> <p><strong>Pro tip:</strong> Did you know you can <a href="https://postmarkapp.com/support/article/1070-what-billing-and-receipt-settings-are-there#Adding-billing-notifications-recipients" target="_blank">add billing contacts to your Postmark account</a>? You can specify the additional email address(es) that will receive billing notifications (and those handy PDFs, too)—saving yourself that additional task of forwarding the email to the right folks.</p> <p></p> </div> </div> <h2 class="updates_date" id="june-2023"><a href="#june-2023">June, 2023</a></h2> <div class="update " id="wordpress-plugin-and-cx-app-updates"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/wordpress-plugin-and-cx-app-updates" class="update_date">June 7, 2023</a> </div> <h2 class="update_title">WordPress plugin and CX App updates</h2> <div class="update_intro"><p>Our WordPress plugin now supports metadata, and we made some improvements to content personalization in the CX App for ActiveCampaign. </p></div> <a href="#" class="update_more-link" data-toggle="#wordpress-plugin-and-cx-app-updates">Show details</a> </div> <div class="update_body"> <p><strong>Postmark’s WordPress plugin now supports metadata</strong><br>After adding <a target="_blank" data-stringify-link="https://postmarkapp.com/updates/updates-to-the-postmark-wordpress-plugin-and-java-library" delay="150" data-sk="tooltip_parent" href="https://postmarkapp.com/updates/updates-to-the-postmark-wordpress-plugin-and-java-library" rel="noopener noreferrer">tag support</a> a few months ago, our <a target="_blank" data-stringify-link="https://wordpress.org/plugins/postmark-approved-wordpress-plugin/" delay="150" data-sk="tooltip_parent" href="https://wordpress.org/plugins/postmark-approved-wordpress-plugin/" rel="noopener noreferrer">WordPress plugin</a> now also supports adding <a target="_blank" data-stringify-link="https://postmarkapp.com/support/article/1125-custom-metadata-faq" delay="150" data-sk="tooltip_parent" href="https://postmarkapp.com/support/article/1125-custom-metadata-faq" rel="noopener noreferrer">metadata</a> to messages. It works by adding a filter for ‘<em>postmark_metadata</em>’ that hooks into a function that returns the array of metadata you wish to attach to a message.<br>Check out the full details <a href="https://wordpress.org/plugins/postmark-approved-wordpress-plugin/">on the official plugin page</a>. <br><br><strong>Improvements to content personalization in the CX App</strong><br>Until recently, the <a href="https://postmarkapp.com/support/article/1273-postmark-cx-app" target="_blank">Postmark CX App in ActiveCampaign</a> used a different syntax for content personalization than the rest of the AC platform. With this fresh update, contact fields and custom contact fields have been aligned with the rest of the AC platform. <br>This means you can now add personalization to your ActiveCampaign templates using contact fields, using either the %UPPERCASE% or %camelCase% syntax. All the info is available <a target="_blank" data-stringify-link="https://postmarkapp.com/support/article/1273-postmark-cx-app#personalization" delay="150" data-sk="tooltip_parent" href="https://postmarkapp.com/support/article/1273-postmark-cx-app#personalization" rel="noopener noreferrer">on this support page</a>.</p> </div> </div> <h2 class="updates_date" id="may-2023"><a href="#may-2023">May, 2023</a></h2> <div class="update update--cover" id="introducing-the-retention-add-on"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/introducing-the-retention-add-on" class="update_date">May 22, 2023</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/introducing-the-postmark-retention-add-on">Introducing the Retention Add-on</a></h2> <a href="https://postmarkapp.com/blog/introducing-the-postmark-retention-add-on"> <img src="https://craft-assets.postmarkapp.com/images/retention-wide.gif" alt="" class="update_cover"> </a> <div class="update_intro"><p><em>Postmark stores message content and activity data for 45 days by default. But what if 45 days is too short? Or too long? With our new Retention Add-on you can adjust retention from 7-365 days.</em></p></div> <a href="#" class="update_more-link" data-toggle="#introducing-the-retention-add-on">Show details</a> </div> <div class="update_body"> <p dir="ltr">We're so excited to share that you now have full control over how long you'd like to keep message content and activity data in your Postmark account. With our Retention Add-on you can:<br></p> <ul><li dir="ltr"><p dir="ltr"><strong>Increase your data retention to up to a year.</strong> Maybe you're delivering digital goods via email and need to keep proof that you actually sent those emails. Or your support team would love deeper visibility into past email activity. Whatever your use case, setting longer retention time will help with troubleshooting, record-keeping, and compliance.<br></p></li><li dir="ltr"><p dir="ltr"><strong>Decrease your data retention</strong> and make sure Postmark will purge all customer data after 7 or 28 days. This is a great option for all senders who frequently deal with DSR requests under GDPR. </p></li></ul> <p>Curious to learn more? <a href="https://postmarkapp.com/blog/introducing-the-postmark-retention-add-on">Read all about this update on the Postmark blog → </a><br></p> </div> </div> <h2 class="updates_date" id="march-2023"><a href="#march-2023">March, 2023</a></h2> <div class="update " id="updates-to-the-postmark-wordpress-plugin-and-java-library"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/libraries" class="update_type update_type--libraries">Libraries</a> <a href="https://postmarkapp.com/updates/updates-to-the-postmark-wordpress-plugin-and-java-library" class="update_date">March 22, 2023</a> </div> <h2 class="update_title">Updates to the Postmark Wordpress Plugin and Java Library</h2> <div class="update_intro"><p>Postmark's WordPress Plugin now supports tags and we've updated our Java library to fully support newer versions of Java JDK. </p></div> <a href="#" class="update_more-link" data-toggle="#updates-to-the-postmark-wordpress-plugin-and-java-library">Show details</a> </div> <div class="update_body"> <h3 dir="ltr">Postmark’s WordPress Plugin now supports tags</h3> <p dir="ltr"><a href="https://postmarkapp.com/support/article/1284-tags-faq">Tags</a> are a handy tool to help you categorize your emails in Postmark — and we now added tag support to <a href="https://wordpress.org/plugins/postmark-approved-wordpress-plugin">Postmark’s WordPress plugin</a>! If you’re using the Postmark plugin to send your WordPress emails, you can now apply tags to your messages using one of the following two options:<br></p> <ul><li dir="ltr"><p dir="ltr">Set an X-PM-Tag message header, i.e. array_push( $headers, ‘X-PM-Tag: PostmarkPluginTest’ ); where you are calling wp_mail().</p></li><li dir="ltr"><p dir="ltr">Add a filter for ‘postmark_tag’ that hooks into a function that returns the tag you desire.</p></li></ul> <p dir="ltr">Please note that using the ‘postmark_tag’ filter will override a tag set via message headers.</p> <p dir="ltr">A big thank you to our friend <a href="https://github.com/DorZuberi">DorZuberi</a> for requesting this update and working with <a href="https://postmarkapp.com/blog/author/patrick">Patrick</a> from our Engineering team to <a href="https://github.com/ActiveCampaign/postmark-wordpress/pull/103">get this PR out the door</a>.<br></p> <p dir="ltr"><a href="https://wordpress.org/plugins/postmark-approved-wordpress-plugin"><strong>Get Postmark’s Wordpress Plugin → </strong></a><br><br></p> <h3 dir="ltr">Updates to Postmark’s Java library</h3> <p dir="ltr">We have updated our <a href="https://github.com/ActiveCampaign/postmark-java">Postmark Java library</a> to provide better support for the Jakarta community and to fully support newer versions of Java JDK. <a href="https://postmarkapp.com/blog/author/igor">Igor</a> from our QA team took care of these requests with the latest updates. Postmark’s Java library now provides full support for Java versions 16, 17, 18, and 19. </p> <p dir="ltr"><a href="https://github.com/ActiveCampaign/postmark-java"><strong>Check out Postmark’s Java client library → </strong></a></p> </div> </div> <h2 class="updates_date" id="february-2023"><a href="#february-2023">February, 2023</a></h2> <div class="update update--cover" id="introducing-postmarks-new-status-api-powered-by-sorry"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/introducing-postmarks-new-status-api-powered-by-sorry" class="update_date">February 20, 2023</a> </div> <h2 class="update_title"><a href="https://status.postmarkapp.com/api">Introducing Postmark’s new Status API (powered by Sorry™)</a></h2> <a href="https://status.postmarkapp.com/api"> <img src="https://craft-assets.postmarkapp.com/images/carbon-1.png" alt="" class="update_cover"> </a> <div class="update_intro"><p dir="ltr"><em>Our friends at Sorry™ (that’s the service we use to run Postmark’s status page) introduced a new API that makes it easy to build Postmark’s status information into your workflow. </em><a href="https://status.postmarkapp.com/api"><em>Here’s how you can put it to work. </em></a><br /></p></div> <a href="#" class="update_more-link" data-toggle="#introducing-postmarks-new-status-api-powered-by-sorry">Show details</a> </div> <div class="update_body"> <p dir="ltr">As a Postmark customer, you deserve to feel that your emails are in good hands, with a service and team you can count on—including when things don’t go as planned. That’s why we’ve teamed up with the good folks at <a href="http://sorryapp.com" target="_blank">Sorry™</a> to bring you a status page that helps you stay on top of any incidents or planned maintenance. Until now, our Status page was already giving you the option to receive status notifications via email, Slack, or Microsoft teams — and with this newest addition, the <a href="https://status.postmarkapp.com/">Postmark Status API</a>, it’s even easier to stay on top of Postmark’s current status. </p> <p dir="ltr">With the new Status API, you can integrate Postmark’s status directly into your processes and workflows, without having to go and manually check our status page (or your emails) for updates. Whether you’re looking to get a quick <a href="https://status.postmarkapp.com/api#simple-overview">overview of our overall system status</a>, build your own notification system, or get details of an incident so you can add them to your own status page or internal tools, with the new Status API, you can do all of that. </p> <p dir="ltr"><a href="https://status.postmarkapp.com/api"><strong>Check out the API documentation →</strong></a></p> <p dir="ltr">The Postmark team (and our friends over at Sorry App) would love to hear what you think about the new API. So if you have any thoughts or feedback, please <a href="mailto:support@postmarkapp.com">let us know</a>. </p> <p dir="ltr">_____________________________</p> <h3 dir="ltr">I used Postmark’s old status API — what do I need to do?</h3> <p dir="ltr">Our old Status API has been unavailable since we <a href="https://postmarkapp.com/updates/weve-moved-to-a-new-provider-to-power-postmarks-status-page">migrated</a> our status page to Sorry, and we’re excited that we can now offer this functionality to you again. But please note that the API endpoint URLs as well as the JSON responses for Sorry’s new API are different from the one we used to provide, so you’ll have to make some changes to your existing integrations to get them up and running again. </p> <p dir="ltr"><strong>Here are a few things you should know:</strong><br></p> <ul><li dir="ltr"><p dir="ltr"><strong>The main API endpoint URLs have changed</strong> from https://status.postmarkapp.com/api/1.0/… (OLD) to https://status.postmarkapp.com/api/v1/… (NEW)<br></p></li><li dir="ltr"><p dir="ltr"><strong>Sorry App uses a different nomenclature to describe the elements of our status page.</strong> For example, what we used to call ‘incidents’ in our old API are ‘notices’ in Sorry. If you’d like to get a list of all incidents, things have changed from <br>GET https://status.postmarkapp.com/api/1.0/incidents (OLD) to<br>GET https://status.postmarkapp.com/api/v1/notices (NEW)</p></li></ul> <ul><li dir="ltr"><p dir="ltr">Please be aware that the <strong>keys and values in the JSON responses follow different formats </strong>than what you’ve seen in Postmark’s old status API.</p></li></ul> <p dir="ltr">Check out <a href="https://status.postmarkapp.com/api">Sorry’s API docs</a> for a detailed overview of all available endpoints and JSON responses. <br></p> </div> </div> <div class="update " id="scheduled-maintenance-on-february-17-2023"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/scheduled-maintenance-on-february-17-2023" class="update_date">February 9, 2023</a> </div> <h2 class="update_title">Scheduled maintenance on February 17, 2023</h2> <div class="update_intro"><p>On Friday, February 17, 2023, Postmark will be performing necessary database maintenance starting at 9:00 pm Eastern Time. We expect the maintenance to last about 2 hours. </p></div> <a href="#" class="update_more-link" data-toggle="#scheduled-maintenance-on-february-17-2023">Show details</a> </div> <div class="update_body"> <p></p> <p dir="ltr">On Friday, February 17, 2023, Postmark will be performing necessary database maintenance starting at 9:00 pm Eastern Time. We expect the maintenance to last about 2 hours. </p> <p dir="ltr">Here’s what you can expect during this maintenance window: </p> <ul><li dir="ltr"><p dir="ltr">Our non-sending API endpoints and Postmark’s Web UI may be unavailable intermittently for up to 20 minutes. </p></li><li dir="ltr"><p dir="ltr">While non-sending API endpoints are unavailable, we will be accepting mail via the API and SMTP.</p></li><li dir="ltr"><p dir="ltr">Your messages might get queued for a short period of time during our maintenance window, and they will get processed as soon as our engineers complete their work. This applies to outbound messages sent via the API and SMTP as well as any inbound messages. We will update you when the queueing starts and ends during the maintenance period.</p></li></ul> <p></p> <p>Throughout the maintenance window, we will post updates on our <a href="https://status.postmarkapp.com/">Status page</a> to keep you updated on the progress, including when exactly messages will be queued. Please <a href="https://postmarkapp.com/contact">get in touch</a> if you have any questions or feedback.</p> </div> </div> <h2 class="updates_date" id="december-2022"><a href="#december-2022">December, 2022</a></h2> <div class="update " id="weve-moved-to-a-new-provider-to-power-postmarks-status-page"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/weve-moved-to-a-new-provider-to-power-postmarks-status-page" class="update_date">December 19, 2022</a> </div> <h2 class="update_title">We’ve moved to a new provider to power Postmark’s status page</h2> <div class="update_intro"><p>For many years, we’ve worked with our own, home-built status page to keep customers posted about any incidents. We learned the hard way that this solution wasn't as reliable as we needed it to be (ouch!) so we decided to quickly move to a new provider (it’s our friends at <a href="http://sorryapp.com/">Sorry</a>) to handle our status page going forward.</p></div> <a href="#" class="update_more-link" data-toggle="#weve-moved-to-a-new-provider-to-power-postmarks-status-page">Show details</a> </div> <div class="update_body"> <p dir="ltr">If you visit <a href="https://status.postmarkapp.com/">status.postmarkapp.com</a> now, you’ll see that the page has a new look. But most importantly, Sorry makes it easier for our team to share incident updates with you fast and reliably. Plus, Sorry gives you plenty of options to customize how you’d like to receive incident notifications from Postmark. In addition to email notifications, you can choose to receive alerts on <a href="https://help.sorryapp.com/en/articles/6320916-status-updates-via-slack">Slack</a> or <a href="https://help.sorryapp.com/en/articles/6737239-status-updates-via-microsoft-teams">Microsoft Teams</a>.</p> <p dir="ltr">If you had previously subscribed to email alerts for status updates, you don't have to subscribe again on the new page—we moved that email list over to Sorry.</p> <h3><strong>🚨 Important information for users of our Status API and the Postmark Slack App</strong>:</h3> <p>As we migrated our status page, <strong>we had to temporarily take down our Status API</strong>. We’re working on a new API solution and will keep you posted on our progress. </p> <p>Plus, since the Postmark Slack app is using our Status API, <strong>incident updates via Postmark’s Slack app currently don’t work</strong> either. If you’d like to continue to receive Postmark status updates via Slack, <a href="https://status.postmarkapp.com/">head over to our new status page</a> and sign up to receive Slack notifications over there.</p> <figure><img src="https://craft-assets.postmarkapp.com/blog/Slack-notifications.png" data-image="277249" alt="Enable Slack notifications via Sorry App"></figure> <p></p> <h3><strong>Where can I find the Time-to-Inbox (TTI) data?</strong></h3> <p>Our TTI stats now have a new home as well. If you're curious how long it takes us to deliver an email to different inbox providers, you can find our stats here: <a href="https://tti.postmarkapp.com/">https://tti.postmarkapp.com/</a></p> </div> </div> <h2 class="updates_date" id="september-2022"><a href="#september-2022">September, 2022</a></h2> <div class="update update--cover" id="improvements-to-the-postmark-app-in-activecampaign"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/improvements-to-the-postmark-app-in-activecampaign" class="update_date">September 7, 2022</a> </div> <h2 class="update_title">Improvements to the Postmark App in ActiveCampaign</h2> <img src="https://craft-assets.postmarkapp.com/images/transactional-email-sending-action-Postmark-ActiveCampaign.png" alt="" class="update_cover"> <div class="update_intro"><p dir="ltr">Sending transactional emails from within ActiveCampaign just got easier: If you’re using ActiveCampaign to create marketing automations, you will now find the option to send a transactional email in the main “Sending Options” section of the automation builder. </p> <p dir="ltr">Once you’ve authenticated your Postmark account, you’ll be able to integrate all kinds of transactional emails—whether that’s a receipt, an event reminder, or more—into your automations.</p> <p dir="ltr"><a href="https://postmarkapp.com/support/article/1273-postmark-cx-app"><strong>Get started with Postmark in ActiveCampaign →</strong></a></p></div> <a href="#" class="update_more-link" data-toggle="#improvements-to-the-postmark-app-in-activecampaign">Show details</a> </div> <div class="update_body"> <p dir="ltr">Plus, here are two more updates to the Postmark app we thought you might like:<br></p> <ul><li dir="ltr"><p dir="ltr">You can now <strong>connect to Postmark using OAuth</strong> rather than having to find, copy, and paste your API keys—for a faster, more seamless experience when connecting Postmark and ActiveCampaign.</p></li><li dir="ltr"><p dir="ltr">You can now <strong>set tags when creating a transactional email in ActiveCampaign</strong>. Tags come in handy when you’d like to categorize and view your messages within the <a href="https://postmarkapp.com/manual#activity-and-statistics">Statistics and Activity</a> tab in your Postmark Message Stream.</p></li></ul> <h2><strong>10 ways to use Postmark and ActiveCampaign together</strong></h2> <p dir="ltr">Together with our friends at ActiveCampaign, we’ve put together 10 transactional email automation recipes, that’s pre-built sample automations that you can use right away—or use them as inspiration to build your own automations. <br></p> <ul><li dir="ltr"><p dir="ltr"><a href="https://www.activecampaign.com/marketplace/recipe/postmark-order-confirmation?utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=updates">Send an order confirmation email</a></p></li><li dir="ltr"><p dir="ltr"><a href="https://www.activecampaign.com/marketplace/recipe/postmark-rsvp-confirmation?utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=updates">Confirm an event registration</a></p></li><li dir="ltr"><p dir="ltr"><a href="https://www.activecampaign.com/marketplace/recipe/postmark-mollie-payment-failed-notification?utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=updates">Notify customers of a failed payment</a></p></li><li dir="ltr"><p dir="ltr"><a href="https://www.activecampaign.com/marketplace/recipe/postmark-welcome-notification?utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=updates">Send a welcome email notification</a></p></li><li dir="ltr"><p dir="ltr"><a href="https://www.activecampaign.com/marketplace/recipe/postmark-docusign-send-signature-reminder?utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=updates">Postmark + DocuSign: Send a signature reminder if a document didn’t get signed</a></p></li><li dir="ltr"><p dir="ltr"><a href="https://www.activecampaign.com/marketplace/?k=postmark&utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=updates">And more</a></p></li></ul> <p dir="ltr"><a href="https://www.activecampaign.com/marketplace/?k=postmark&utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=updates"><strong>See all transactional email recipes →</strong></a><br></p> </div> </div> <div class="update " id="action-required-postmark-will-no-longer-support-api-request-over-http"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/action-required-postmark-will-no-longer-support-api-request-over-http" class="update_date">September 1, 2022</a> </div> <h2 class="update_title">Upcoming changes: Postmark will no longer support API requests over HTTP</h2> <div class="update_intro"><p>To ensure the continued security of our systems, we wanted to let you know about an upcoming change to our API access. In short, we want to ensure Postmark—and your account—is as secure as possible, and we've found that there is a small portion of our traffic that is using HTTP rather than HTTPS.</p></div> <a href="#" class="update_more-link" data-toggle="#action-required-postmark-will-no-longer-support-api-request-over-http">Show details</a> </div> <div class="update_body"> <h2>What's changing</h2> <p dir="ltr"><strong>Starting on November 30th (10 am EST), we will no longer be supporting HTTP connections to our API.</strong> That's three months away, but we want to give any affected customers—yourself included—a good bit of time to prepare for this change.<br></p> <p dir="ltr"><strong>What you need to do</strong></p> <p dir="ltr">To avoid any disruptions with your email processing, please update any HTTP connections to our API to the secure version (HTTPS). For most scenarios, this is as simple as finding any place in your application/service where you call an API URL for Postmark starting with HTTP. Like this…</p> <p dir="ltr"><kbd><strong>http</strong>://api.postmarkapp.com/server</kbd></p> <p dir="ltr">And change it to this:<br></p> <p dir="ltr"><kbd><strong>https</strong>://api.postmarkapp.com/server</kbd></p> <p dir="ltr">That's it. However, if you have any further questions or find a configuration where you aren't sure what to change, reach out to our <a href="https://postmarkapp.com/contact">support team</a> and we'll do everything we can to help out and give you any necessary instructions.<br></p> <p dir="ltr"><strong>The timeline</strong></p> <p dir="ltr">We want to make this as easy as possible for all customers, so we'll do the following:<br></p> <ul><li dir="ltr"><p dir="ltr"><strong>Sept. 1st, 2022</strong> (today): Communicate the plan to make these changes (via email and here, on our <a href="https://postmarkapp.com/updates">updates page</a>)</p></li><li dir="ltr"><p dir="ltr"><strong>Sept 12, 2022</strong>: Reminder announcement</p></li><li dir="ltr"><p dir="ltr"><strong>Sept. 21st, 2022</strong>: Reminder announcement</p></li><li dir="ltr"><p dir="ltr"><strong>Oct. 4th, 2022</strong>: Reminder announcement</p></li><li dir="ltr"><p dir="ltr"><strong>Oct. 13th, 2022</strong>: First blackout period. We'll reject access to API endpoints using HTTP for a 60 minute period</p></li><li dir="ltr"><p dir="ltr"><strong>Oct. 27th, 2022</strong>: Second blackout period (8 hour period from 11 am to 7 pm EDT)</p></li><li dir="ltr"><p dir="ltr"><strong>Nov. 16th, 2022</strong>: Third and final blackout period (1:00 pm EST Nov. 16th to 12:59 pm EST Nov. 17th)</p></li><li dir="ltr"><p dir="ltr"><strong>Nov. 28th, 2022</strong>: Final reminder announcement</p></li><li dir="ltr"><p dir="ltr"><strong>Nov. 30, 2022</strong>: Final cutover date (10 am EST)</p></li></ul> <p dir="ltr">We understand these kinds of changes can be inconvenient, but it's a step that benefits everyone. And we appreciate your cooperation on this—thanks so much!<br></p> </div> </div> <h2 class="updates_date" id="august-2022"><a href="#august-2022">August, 2022</a></h2> <div class="update update--cover" id="send-transactional-emails-from-activecampaign-with-the-new-postmark-app"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/send-transactional-emails-from-activecampaign-with-the-new-postmark-app" class="update_date">August 15, 2022</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/introducing-the-postmark-app-for-activecampaign">Send transactional emails from ActiveCampaign with the new Postmark App</a></h2> <a href="https://postmarkapp.com/blog/introducing-the-postmark-app-for-activecampaign"> <img src="https://craft-assets.postmarkapp.com/images/Postmark-ActiveCampaign.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>With the new Postmark App for ActiveCampaign, you can set up and trigger transactional emails from within ActiveCampaign, making it easier than ever to embed transactional emails into your marketing automations.</p></div> </div> </div> <h2 class="updates_date" id="july-2022"><a href="#july-2022">July, 2022</a></h2> <div class="update update--cover" id="introducing-the-postmark-app-for-stripe"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/introducing-the-postmark-app-for-stripe" class="update_date">July 11, 2022</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/introducing-the-postmark-app-for-stripe">Introducing the Postmark App for Stripe</a></h2> <a href="https://postmarkapp.com/blog/introducing-the-postmark-app-for-stripe"> <img src="https://craft-assets.postmarkapp.com/blog/pm-stripe%402x.gif" alt="" class="update_cover"> </a> <div class="update_intro"><p dir="ltr">With the brand new <a href="https://marketplace.stripe.com/apps/postmark">Postmark App for Stripe</a>, you can send emails to your customers without having to leave Stripe. Whether you’re looking to send payment reminders, win-back campaigns, promotions, or anything in between, you can send emails with a single click, see open and click activity right within Stripe, and build relationships that grow your business. <br /></p></div> </div> </div> <h2 class="updates_date" id="may-2022"><a href="#may-2022">May, 2022</a></h2> <div class="update " id="postmark-has-been-acquired-by-activecampaign"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/company" class="update_type update_type--company">Company</a> <a href="https://postmarkapp.com/updates/postmark-has-been-acquired-by-activecampaign" class="update_date">May 3, 2022</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/postmark-and-dmarc-digests-acquired-by-activecampaign">Postmark has been acquired by ActiveCampaign</a></h2> <div class="update_intro"><p>We’re excited to share that <a href="https://postmarkapp.com/blog/postmark-and-dmarc-digests-acquired-by-activecampaign">Postmark and DMARC Digests have been acquired by ActiveCampaign</a>. With the support of ActiveCampaign, we’ll have the resources to make Postmark even better—and we can’t wait to take you along for the ride.</p> <p><a href="https://postmarkapp.com/blog/postmark-and-dmarc-digests-acquired-by-activecampaign"><strong>Read more on the blog → </strong></a></p></div> <a href="#" class="update_more-link" data-toggle="#postmark-has-been-acquired-by-activecampaign">Show details</a> </div> <div class="update_body"> <p dir="ltr"><strong>What does this mean for me as a Postmark customer?</strong></p> <p dir="ltr">We know you might have some questions. Like…<br></p> <ul><li dir="ltr"><p dir="ltr">Will Postmark’s pricing change? (<a href="https://postmarkapp.com/postmark-activecampaign-faq#will-postmarks-pricing-change">No.</a>) </p></li><li dir="ltr"><p dir="ltr">Will Postmark continue to be available as a standalone product or will you integrate into ActiveCampaign? (<a href="https://postmarkapp.com/postmark-activecampaign-faq#will-postmark-continue-to-be-available-as-a-standalone-product">Yes and yes</a>.)</p></li><li dir="ltr"><p dir="ltr">Will Postmark stay yellow? (<a href="https://postmarkapp.com/postmark-activecampaign-faq#what-happens-to-the-postmark-brand">Oh yes!</a>)</p></li></ul> <p dir="ltr">We’re answering these questions and more in our <a href="https://postmarkapp.com/postmark-activecampaign-faq">public and ever-evolving FAQ</a>. Do you have a question we didn’t cover? Let us know and we’ll get it added (and give you an answer, obviously.)</p> <p dir="ltr"><a href="https://postmarkapp.com/postmark-activecampaign-faq"><strong>Read the FAQ</strong></a></p> <p><br></p> </div> </div> <h2 class="updates_date" id="february-2022"><a href="#february-2022">February, 2022</a></h2> <div class="update " id="keeping-your-account-secure-account-wide-two-factor-authentication"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/keeping-your-account-secure-account-wide-two-factor-authentication" class="update_date">February 24, 2022</a> </div> <h2 class="update_title">Keeping your account secure: Account-wide two-factor authentication</h2> <div class="update_intro"><p>If you’re an account owner or admin, you now have the option to require everyone on your team to set up two-factor authentication to protect your Postmark account from unauthorized access.</p></div> <a href="#" class="update_more-link" data-toggle="#keeping-your-account-secure-account-wide-two-factor-authentication">Show details</a> </div> <div class="update_body"> <p dir="ltr">Two-factor authentication (also lovingly referred to as 2FA) is a simple and <a href="https://www.zdnet.com/article/better-than-the-best-password-how-to-use-2fa-to-improve-your-security/#:~:text=A%202019%20report%20from%20Microsoft,%2Dbased%20one%2Dtime%20passwords.">highly effective</a> way of improving the security of your Postmark account. Once enabled, Postmark will require a password and a second form of authentication—either via SMS or app authentication—during the login process. </p> <p dir="ltr">This additional layer of security protects your account from unauthorized access. Should your password ever get compromised or stolen, you can still rest assured that only <em>you</em> can access your Postmark account. </p> <p dir="ltr">Postmark has supported 2FA for years, but now we’re making it easier for account owners to ensure that everyone on the team is putting this safeguard in place.</p> <h2 dir="ltr">New: Enforce account-wide two-factor authentication </h2> <p>If you’re an account owner or admin, you now have the option to require everyone on your team to set up two-factor authentication. Here’s how it works:</p> <p dir="ltr">Navigate to the Account overview page in your Postmark account. You’ll find the option to enable account-wide 2FA on the top of that page:</p><figure><img src="https://craft-assets.postmarkapp.com/blog/enabling-account-wide-2FA.png" data-image="201459" style="opacity: 1;"></figure> <p>Once enabled, all users on your Postmark account who haven’t set up 2FA will receive an email with instructions on how to get set up—and they will no longer be able to log into Postmark until that’s done.</p><figure><img src="https://craft-assets.postmarkapp.com/blog/2FA-required-at-Login.png" data-image="201458" style="opacity: 1;"><figcaption>A user who doesn’t have 2FA set up won’t be able to log into Postmark before completing this step. </figcaption></figure> <p dir="ltr"><strong>Good to know: </strong><br></p> <ul><li dir="ltr"><p dir="ltr">You can only enable account-wide two-factor authentication if you’ve set up 2FA for yourself first. <a href="https://postmarkapp.com/support/article/1081-how-do-i-use-two-factor-authentication-2fa">Here’s how you do that</a>.<br></p></li><li dir="ltr"><p dir="ltr">We don’t require a phone number for 2FA. Some services only support 2FA via SMS, but we think you shouldn’t be forced to share your phone number if you don’t want to. So at Postmark, you can verify your identity via SMS or an authenticator app of your choice. We support <a href="https://support.google.com/accounts/answer/1066447">Google Authenticator</a>, <a href="https://authy.com/">Authy</a>, and <a href="https://support.1password.com/one-time-passwords/">1Password</a>.</p></li></ul> </div> </div> <h2 class="updates_date" id="december-2021"><a href="#december-2021">December, 2021</a></h2> <div class="update " id="updates-to-the-sender-signature-flow"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/updates-to-the-sender-signature-flow" class="update_date">December 16, 2021</a> </div> <h2 class="update_title">Updates to the Sender Signature flow</h2> <div class="update_intro"><p>When you’re setting up a new Sender Signature—that’s the email address we’ll use as the FROM email when sending your messages—the owner of that email address has to confirm that Postmark is allowed to send email using their address. You can now add a personal note to that confirmation email to provide additional context. <br /></p></div> <a href="#" class="update_more-link" data-toggle="#updates-to-the-sender-signature-flow">Show details</a> </div> <div class="update_body"> <p>Especially Postmark customers who’re sending on behalf of others will find this helpful. Let’s look at an example:</p><p>Sweeet is a (totally fictional) platform that helps bakeries handle pre-orders and promote special offers via newsletters, and they’re using Postmark to send all those emails. When a new bakery, let’s call them Donut Heaven, signs up, they’ll need to confirm that Sweeet can send newsletters using Donut Heaven’s domain. That confirmation email is sent via Postmark—and that’s been causing some confusion in the past. Donut Heaven signed up with Sweeet, so why are they getting an email from <i>Postmark</i>? We get it. It really is a bit confusing.</p><p>To provide additional context and to make the Sender Signature confirmation process smoother for you and your customers, we now let you add a personal note to the confirmation email.</p><figure class="image"><img src="https://craft-assets.postmarkapp.com/blog/sender-signature-custom-note-example.jpg" width="80%"></figure><p>If you’re creating a new Sender Signature via the Postmark UI, you’ll see a new text field to add your personal note: <br> </p><figure class="image"><img src="https://craft-assets.postmarkapp.com/blog/sender-signature-add-a-custom-note.png"></figure><p>If you’re <a href="https://postmarkapp.com/developer/api/signatures-api">creating new Sender Signatures via the API</a>, you can use the new "ConfirmationPersonalNote" field to add your personal message. <br> </p><p><a href="https://postmarkapp.com/developer/api/signatures-api"><img src="https://craft-assets.postmarkapp.com/blog/example-API-call-including-personal-note.jpg"></a></p><p>We hope this will make it easier for those of you who use Postmark to empower your customers to send email.</p><p>Let us know what you think! And as always, please reach out if you have any questions.</p><h2>Learn more:</h2><ul><li>Check out the <a href="https://postmarkapp.com/developer/api/signatures-api">Sender Signature API</a></li><li>Read our best practices for <a href="https://postmarkapp.com/support/article/846-how-can-i-send-on-behalf-of-my-users">using Postmark to send on behalf of others</a></li><li>Pro Tip! Consider <a href="https://postmarkapp.com/support/article/1046-how-do-i-verify-a-domain">verifying your domain(s)</a> to ensure email deliverability. </li></ul> </div> </div> <div class="update " id="update-on-the-recent-log4j-vulnerability"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/company" class="update_type update_type--company">Company</a> <a href="https://postmarkapp.com/updates/update-on-the-recent-log4j-vulnerability" class="update_date">December 16, 2021</a> </div> <h2 class="update_title">Update on the recent Log4j vulnerability</h2> <div class="update_intro"><p>As you are most likely aware by now, the <a target="_blank" href="https://logging.apache.org/log4j/2.x/security.html" rel="noreferrer noopener">recent Log4j vulnerability</a> has affected many companies. After the exploit was made public on December 10th, our engineers immediately began a thorough investigation to determine if our systems were vulnerable.</p></div> <a href="#" class="update_more-link" data-toggle="#update-on-the-recent-log4j-vulnerability">Show details</a> </div> <div class="update_body"> <p>We do not use Java or Log4j in our products, including Postmark. We did, however, identify an internal system that was vulnerable. A component of our logging system uses Log4j to ingest logs and transfer them to a searchable database that is used internally by our staff. We immediately shut down this system and rebuilt it with a version of Log4j that is not vulnerable.</p><p> This logging system does not have access to customer credentials (including passwords and payment information), API keys, or templates, although some log messages do include headers from emails sent by Postmark. That said, <strong>w</strong><strong>e conducted a deep review of the affected system</strong><strong> over the past few days</strong><strong> and there is no evidence that suggests unauthorized access</strong><strong> of any kind</strong><strong>.</strong><strong></strong></p><p>We will continue to remain vigilant and investigate this incident further, and will update this post if we find any additional information or evidence of unauthorized access. If you have any questions, <a target="_blank" data-target-href="https://postmarkapp.com/contact" href="https://postmarkapp.com/contact" rel="noreferrer nofollow noopener">please reach out at any time</a>. We’re here to help.</p> </div> </div> <div class="update update--cover" id="a-single-place-for-all-postmark-integrations"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/a-single-place-for-all-postmark-integrations" class="update_date">December 13, 2021</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/integrations">A single place for all Postmark integrations</a></h2> <a href="https://postmarkapp.com/integrations"> <img src="https://craft-assets.postmarkapp.com/images/postmark-integrations.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>As an API-first product, Postmark is designed to integrate seamlessly with your favorite tools and services—and our <a href="https://postmarkapp.com/integrations">brand new integrations page</a> makes it easier than ever to find Postmark integrations that fit your needs.<br /></p> <p>You’ll find handy integrations with popular content management systems like <a href="https://postmarkapp.com/integrations/wp-mail-smtp">WordPress</a> and <a href="https://postmarkapp.com/integrations/craft-cms">Craft CMS</a>. You can learn how to integrate Postmark and <a href="https://postmarkapp.com/integrations/slack">Slack</a>. And so <a href="https://postmarkapp.com/integrations">much more</a>.</p></div> <a href="#" class="update_more-link" data-toggle="#a-single-place-for-all-postmark-integrations">Show details</a> </div> <div class="update_body"> <h2>⭐️ Featured: Marketer-friendly tools that integrate with Postmark</h2> <p>Since we introduced <a href="https://postmarkapp.com/message-streams">Broadcast Message Streams</a> and the ability to send promotional emails with Postmark, some customers asked whether we now offer list management, a WYSIWYG editor, and other tools for marketers, too. We don’t. Our small team focuses on what we do best: providing great email delivery infrastructure. But there are great, marketer-friendly tools out there that integrate with Postmark. Here are a few of our favorites: </p> <h3>Marketing tools for list management, campaign creation, and automation</h3> <p>There are countless email marketing services out there that provide marketers with the tools they need to manage lists, set up and send email campaigns, and wrangle marketing automation. Here are a few great ones that integrate with Postmark: </p> <ul><li><a href="https://postmarkapp.com/integrations/mailcoach"><strong>Mailcoach</strong></a> is a self-hosted email marketing platform that offers list management, automations, drip campaigns, and a slick UI to make managing your email marketing a breeze—and Postmark will handle the email delivery. <br><br></li><li><a href="https://postmarkapp.com/integrations/craft-campaign"><strong>Craft Campaign</strong></a> is a powerful email marketing plugin for Craft CMS that brings mailing lists, campaign management features, and segmentation tools right into Craft, with Postmark as your sending service. <br><br></li><li>With <a href="https://postmarkapp.com/integrations/customer-io"><strong>Customer.io</strong></a>, you can manage complex lists and segments, create thoughtful automated campaigns using your data, and build your emails using an intuitive drag-and-drop WYSIWYG editor.</li></ul> <h3>Handy email design tools that integrate with Postmark</h3> <p>Designing HTML emails doesn't have to be a pain. If you (or your marketing colleagues) are looking for an email editor to design beautiful emails without the headache, you should check out these tools: </p> <ul><li>With <a href="https://postmarkapp.com/integrations/stripo"><strong>Stripo</strong></a>'s drag-and-drop email builder, designing great-looking emails is fast and easy—without you having to write a single line of code. And once you're happy with your emails, you can export your HTML email into Postmark's templates with a single click.<br><br></li><li><a href="https://postmarkapp.com/integrations/figma"><strong>Emailify</strong></a> is a handy Figma plugin that allows you to design beautiful, responsive HTML emails in Figma. Thanks to the integration with Postmark, getting your email designs into Postmark is a piece of cake.</li></ul> <p><a href="https://postmarkapp.com/integrations">See all Postmark integrations → </a></p> <p>Are you using an integration that’s not on this list yet? Or would you like to see any other integrations? <a href="https://postmarkapp.com/contact">Let us know</a>. We’d love to hear from you. </p> </div> </div> <h2 class="updates_date" id="july-2021"><a href="#july-2021">July, 2021</a></h2> <div class="update " id="introducing-smtp-tokens-expanded-support-for-using-broadcast-message-streams-via-smtp"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/introducing-smtp-tokens-expanded-support-for-using-broadcast-message-streams-via-smtp" class="update_date">July 29, 2021</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/expanded-support-for-using-broadcast-message-streams-via-smtp">Introducing SMTP Tokens: Expanded support for using Broadcast Message Streams via SMTP</a></h2> <div class="update_intro"><p>With our new stream-specific SMTP Tokens, you can specify what Message Stream you’d like to use to send email—without having to add custom headers.</p></div> <a href="#" class="update_more-link" data-toggle="#introducing-smtp-tokens-expanded-support-for-using-broadcast-message-streams-via-smtp">Show details</a> </div> <div class="update_body"> <p>When <a href="https://postmarkapp.com/developer/user-guide/send-email-with-smtp">sending mail with Postmark via SMTP</a>, there used to be only one option for you to specify a Message Stream: You’d authenticate with a <a href="https://postmarkapp.com/support/article/1008-what-are-the-account-and-server-api-tokens">Server Token</a> and specify the Message Stream you’d like to use with the `X-PM-Message-Stream` header (that’s the Message Stream header). If you have the ability to set custom headers, this works great. But we’ve heard from some of you that your SMTP clients don’t let you set custom headers, making it impossible to define a Message Stream for sending. That’s not cool, so we set out on a mission to fix that!</p><p><strong><a href="https://postmarkapp.com/blog/expanded-support-for-using-broadcast-message-streams-via-smtp">Say hello to our brand new Message Stream SMTP Tokens! 🎉</a></strong></p> </div> </div> <h2 class="updates_date" id="june-2021"><a href="#june-2021">June, 2021</a></h2> <div class="update update--cover" id="introducing-sandbox-mode-a-safe-environment-for-email-testing"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/introducing-sandbox-mode-a-safe-environment-for-email-testing" class="update_date">June 30, 2021</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/new-in-postmark-sandbox-mode">Introducing Sandbox Mode, a safe environment for email testing</a></h2> <a href="https://postmarkapp.com/blog/new-in-postmark-sandbox-mode"> <img src="https://craft-assets.postmarkapp.com/images/sandbox-testing-update.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>Whether you’re new to Postmark and are still exploring or are working on new ways to integrate Postmark with your products, we know that sometimes you just want to try things out. </p> <p>We’ve heard from many of you that you’d love to see a safe space to test and experiment with Postmark—without the risk of accidentally sending tests to real customers or damaging your sender reputation. Sandbox Mode, our newest addition to Postmark, lets you do just that. </p><p><a href="https://postmarkapp.com/blog/new-in-postmark-sandbox-mode"><strong>Learn more →</strong></a></p></div> </div> </div> <div class="update " id="making-it-easier-to-get-started-with-postmark"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/making-it-easier-to-get-started-with-postmark" class="update_date">June 16, 2021</a> </div> <h2 class="update_title">Making it easier to get started with Postmark</h2> <div class="update_intro"><p>A while ago, we’ve introduced <a href="https://postmarkapp.com/message-streams">Message Streams and Broadcast sending</a> with Postmark—and because there’s so much more you can do with Postmark now, we’ve made a few in-app tweaks to make it easier to navigate all that Postmark has to offer.</p></div> <a href="#" class="update_more-link" data-toggle="#making-it-easier-to-get-started-with-postmark">Show details</a> </div> <div class="update_body"> <h2>In-app guidance to help you navigate Servers and Message Streams</h2> <p>What’s a <a href="https://postmarkapp.com/message-streams">Message Stream</a>? Why are there <a href="https://postmarkapp.com/support/article/1207-how-to-create-and-send-through-message-streams?utm_campaign=onboarding&utm_medium=app&utm_source=postmark">different ones</a>? And what in the world is a Postmark <a href="https://postmarkapp.com/support/article/1137-servers-faq?utm_campaign=onboarding&utm_medium=app&utm_source=postmark">Server</a>? Great questions, friends! Those should not stay unanswered. That’s why we’ve added a bunch of contextual help throughout the Server and Message Streams pages in the Postmark app to help you get started on the right track. </p> <h2>Is this message a broadcast or a transactional email? We help you decide </h2> <p>We know that the lines between transactional and bulk email aren’t always very clear, so we’ve created <a href="https://wildbit.typeform.com/to/MWIUFyBX" target="_blank">this handy quiz</a> that helps you decide whether your email is a better fit for our broadcast or transactional streams. If you pick the right one, we can guarantee the best deliverability for all types of emails.<br></p> <p>Just answer a few simple questions about the message you’re planning to send and we’ll tell you what stream is the best fit for your email. </p> <p><a href="https://wildbit.typeform.com/to/MWIUFyBX" target="_blank"><strong>Take the quiz →</strong></a> </p> <h2>Creating sender signatures by default</h2> <p>Before you can send emails with Postmark, you’ll need to verify your FROM address. We learned that most Postmark customers use the email address they signed up with to send their first email, so we’re now automatically setting up the sender signature for that email address. If you’re new to Postmark, that’s one less manual step between you and your first email. ✉️ 🚀</p><h2>Design updates</h2> <p>If you’ve been with Postmark for a while you might notice that some areas of Postmark look a little different. We made a handful of design changes to improve contrast and legibility throughout the app.</p><p>As always, if you have any feedback, please <a href="https://postmarkapp.com/contact" target="_blank">let us know</a>. We'd love to hear from you.</p> <p></p> </div> </div> <h2 class="updates_date" id="may-2021"><a href="#may-2021">May, 2021</a></h2> <div class="update " id="upcoming-changes-to-attachment-validation-action-may-be-required"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/upcoming-changes-to-attachment-validation-action-may-be-required" class="update_date">May 20, 2021</a> </div> <h2 class="update_title">Upcoming changes to attachment validation — action may be required</h2> <div class="update_intro"><p>Historically Postmark has accepted invalid content-types and content-id for attachments. To accommodate future infrastructure improvements, we’re changing how we handle attachment validation. After <strong>June 3rd</strong>, we will start to reject content-types and content-ids that are invalid. If you send messages without attachments, no changes are necessary. This also only applies to outgoing messages.</p></div> <a href="#" class="update_more-link" data-toggle="#upcoming-changes-to-attachment-validation-action-may-be-required">Show details</a> </div> <div class="update_body"> <h2>What’s changing</h2> <p>There are two places where an attachment could be invalid:</p> <ul><li>content-type will need to be a valid <a target="_blank" data-target-href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types" rel="noreferrer nofollow noopener">MIME type</a> (for example <em>application/pdf</em> or <em>image/png</em>). </li><li>content-id will need to contain only ASCII characters, no spaces or non-ASCII characters are allowed. This follows <a target="_blank" data-target-href="https://datatracker.ietf.org/doc/html/rfc2392" href="https://datatracker.ietf.org/doc/html/rfc2392" rel="noreferrer nofollow noopener">RFC2392</a>.</li></ul> <p>In the majority of cases the invalid data stems from using the filename as the content-type and/or content-id. Instead, the correct MIME type should be specified in the ContentType field, and an appropriate unique ContentID should be generated for each attachment, For example:</p> <p><strong>Invalid</strong></p> <pre><code> { "Name": "readme (1).txt", "Content": "dGVzdCBjb250ZW50", "ContentType": "readme (1).txt", "ContentID": "readme (1).txt" } </code> </pre> <p><strong>Valid</strong></p> <pre><code> { "Name": "readme(1).txt", "Content": "dGVzdCBjb250ZW50", "ContentType": "text/plain", "ContentID": "c7d-2q41-zfw" } </code> </pre> <h2>What you need to do</h2> <p>For messages you send with attachments, you can check the “Raw Source” of the message in Postmark to make sure you have your attachment formatted in a valid way. If you have access to review the logging for how you’re sending messages to Postmark for your server, you can also review how the attachment is formatted there. A vast majority of senders will find their attachments are valid, and no action will be needed.</p> <p>We’re contacting senders who we’ve detected who have sent a high volume of messages that will be affected by this change. <br></p> <p>If you have any questions or concerns about any of these changes, please <a target="_blank" data-target-href="https://postmarkapp.com/contact" href="https://postmarkapp.com/contact" rel="noreferrer nofollow noopener">let us know</a>.</p> </div> </div> <h2 class="updates_date" id="april-2021"><a href="#april-2021">April, 2021</a></h2> <div class="update update--cover" id="postmark-for-ios-v1-4-0-released-1"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/mobile" class="update_type update_type--mobile">Mobile</a> <a href="https://postmarkapp.com/updates/postmark-for-ios-v1-4-0-released-1" class="update_date">April 15, 2021</a> </div> <h2 class="update_title"><a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.4.0Update&mt=8">Postmark for iOS v1.4.0: Manage suppressions from your iPhone</a></h2> <a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.4.0Update&mt=8"> <img src="https://craft-assets.postmarkapp.com/images/ios-app-v1.4.0%402x.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>Our most recent update to <a href="https://postmarkapp.com/ios">Postmark's iOS app</a> brings the ability to manage your suppression list right to your smartphone. 📱</p> <p>Previously, when you wanted to view or manage your suppression list, you'd have to log in to our web UI. Now, you can manage your suppressions wherever you go with the iOS App. This update (v1.4.0) replaces the old Disabled addresses screen with a brand-new, powerful Suppressions view that makes it easy for you to:</p> <ul><li>View all suppressions</li><li>Search suppressions by email address</li><li>Filter suppressions by common types (spam complaints and unsubscribe)</li><li>Reactivate suppressed addresses</li></ul> <p>We’ve also removed Firebase analytics tracking from the app. <strong><br /></strong></p> <p><strong>What's the Postmark iOS App?</strong></p> <p>Take Postmark’s powerful monitoring and troubleshooting tools with you everywhere you go with our iOS app. <a href="https://postmarkapp.com/ios">Learn more →</a></p> <figure><a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.2.0Update&mt=8" target="_blank" rel="noreferrer noopener"><img src="/images/ios/app-store-button.svg" alt="Download Postmark on the App Store" width="137" height="46" title="Download Postmark on the App Store" /></a></figure></div> </div> </div> <div class="update " id="scheduled-database-maintenance-wednesday-april-21st"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/scheduled-database-maintenance-wednesday-april-21st" class="update_date">April 14, 2021</a> </div> <h2 class="update_title">Scheduled database maintenance: Wednesday, April 21st</h2> <div class="update_intro"><p>On <strong>Wednesday, April 21st at 10pm Eastern Time</strong> we will be doing some scheduled database maintenance. During this time some non-sending API endpoints, as well as the Web UI, will be unavailable intermittently for <strong>up to 30 minutes</strong>. While non-sending API endpoints are unavailable, <strong>mail will be accepted and queued for sending </strong>once the maintenance is complete.</p><p>Please note that we don’t expect mail to be queued for the full 30 minutes, but you might see some intermittent API failures and web UI unavailability during this time. If you have any questions about this planned maintenance, please <a target="_blank" href="https://postmarkapp.com/contact" rel="noreferrer noopener">let us know</a>. You can also keep an eye on our <a target="_blank" href="https://status.postmarkapp.com/" rel="noreferrer noopener">status page</a> for real-time updates while the maintenance is ongoing.</p></div> </div> </div> <div class="update " id="postmark-zapier-actions-now-support-message-streams"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/libraries" class="update_type update_type--libraries">Libraries</a> <a href="https://postmarkapp.com/updates/postmark-zapier-actions-now-support-message-streams" class="update_date">April 13, 2021</a> </div> <h2 class="update_title">Postmark Zapier Actions now support Message Streams</h2> <div class="update_intro"><p>We added <a href="https://postmarkapp.com/message-streams" target="_blank" rel="noreferrer noopener">Message Streams</a> support to <a href="https://zapier.com/apps/postmark/integrations" target="_blank" rel="noreferrer noopener">Postmark's Zapier Actions</a>. You can now specify which stream you’d like to use to send email through messages triggered from Zapier. If no Message Stream is provided, we'll default to the <code>Outbound</code> Transactional Stream.</p><p>Postmark's Zapier Actions support both Send an Email and Send an Email With Template.</p> <p><a href="https://postmarkapp.com/support/article/807-using-the-zapier-postmark-send-email-action" target="_blank" rel="noreferrer noopener">Learn more about integrating Postmark with Zapier → </a></p></div> </div> </div> <h2 class="updates_date" id="march-2021"><a href="#march-2021">March, 2021</a></h2> <div class="update " id="updates-to-postmarks-two-factor-authentication-process"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/updates-to-postmarks-two-factor-authentication-process" class="update_date">March 18, 2021</a> </div> <h2 class="update_title">Updates to Postmark’s two-factor authentication process</h2> <div class="update_intro"><p>We’ve made some updates to our <a href="https://postmarkapp.com/support/article/1081-how-do-i-use-two-factor-authentication-2fa" target="_blank" rel="noreferrer noopener">two-factor authentication (2FA)</a> process to make it even easier for you to set up this extra layer of security for your account. Previously, we required you to add a phone number to set up 2FA. Now, you can choose between SMS or app authentication. </p></div> <a href="#" class="update_more-link" data-toggle="#updates-to-postmarks-two-factor-authentication-process">Show details</a> </div> <div class="update_body"> <p>At Postmark your data is <a href="https://postmarkapp.com/support/article/917-is-postmark-secure-and-redundant">secure and redundant</a>, but keeping your account information secure is a team effort! <a href="https://postmarkapp.com/support/article/1081-how-do-i-use-two-factor-authentication-2fa" target="_blank">Setting up 2FA</a> is one of the most important things you can do to protect your account from unauthorized access—and to keep your data secure. </p> <h3>How can I set up 2FA?</h3> <p>Set up 2FA by logging into your Postmark account, select your name in the top right, and then choose <a href="https://account.postmarkapp.com/profile/edit" target="_blank">“Profile”</a> to access your user settings. You can turn on two-factor authentication in the “Security” section on that page.</p> <p>Select your preferred authentication method. You can choose between SMS or app authentication. Postmark supports Google Authenticator, Authy, and 1Password.</p> <figure><img src="https://craft-assets.postmarkapp.com/blog/postmark-2fa-setup.png" data-image="148857"></figure> <p><br>Nobody likes being locked out of their account, so we also<strong> made it mandatory to download your backup codes</strong> when setting up 2FA<strong>. </strong>They are your key to get back into your account should you ever change your phone number or lose access to your device. </p> <p><a href="https://postmarkapp.com/support/article/1081-how-do-i-use-two-factor-authentication-2fa"><strong>Learn more about setting up 2FA → </strong></a></p> <h3>Can I see if other users have 2FA enabled?</h3> <p>As the account owner, you can! Head over to the <a href="https://account.postmarkapp.com/users" target="_blank">Users</a> section in your account and you’ll see who has enabled 2FA (and who might need a friendly reminder to get it set up).</p> <figure><img src="https://craft-assets.postmarkapp.com/blog/user-2fa-overview.jpg" data-image="148856"><figcaption>Uh-oh, Steve! You haven't set up 2FA just yet!</figcaption></figure> <h3>I previously used SMS authentication. How can I switch to another authentication method?</h3> <p>That’s easy! Head to the <a href="https://account.postmarkapp.com/mfa/" target="_blank">2FA settings</a> in your account and turn off 2FA. Then, just start the setup process again. You’ll no longer be required to use SMS to enable 2FA. </p> <p></p> <p></p> </div> </div> <h2 class="updates_date" id="february-2021"><a href="#february-2021">February, 2021</a></h2> <div class="update " id="reactivate-suppressed-subscribers"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/reactivate-suppressed-subscribers" class="update_date">February 22, 2021</a> </div> <h2 class="update_title">Reactivate suppressed subscribers</h2> <div class="update_intro"><p>We’ve added the ability to reactivate suppressions made by unsubscribed recipients. This functionality is available in the UI as well as through the Suppressions API<br /> </p></div> <a href="#" class="update_more-link" data-toggle="#reactivate-suppressed-subscribers">Show details</a> </div> <div class="update_body"> <p></p> <p>Did one of your recipients hit the unsubscribe link by accident? You can now reactivate subscribers so that they can receive your emails again. </p> <p>To reactivate an unsubscribed recipient, head over to the Suppressions tab, find the recipient’s email address, and click the “Reactivate” button to remove the email address from your suppression list. </p> <p></p> <figure><img src="https://craft-assets.postmarkapp.com/blog/Screenshot-2021-02-18-at-17.40.48.png" data-image="144294"></figure> <p>You can also reactivate subscribers via the API, using the "Delete a Suppression" endpoint. <a href="https://postmarkapp.com/developer/api/suppressions-api#delete-a-suppression">Here’s how. </a></p> <p>🚨 <strong>With great power comes great responsibility.</strong> Honor unsubscribes and only reactivate email addresses when asked to do so, or when mistakes happen. </p> <p>If someone marked your email as spam, they’ll be suppressed from future email sends as well. We take spam complaints seriously, so you won’t be able to reactivate that recipient on your own. If someone marked your messages as spam but would like to start receiving email again, <a href="https://postmarkapp.com/contact" target="_blank">reach out to our support team</a>. We’re here to help.</p> <p><strong>Learn more:</strong></p> <ul><li><a href="https://postmarkapp.com/support/article/903-an-address-has-been-marked-as-inactive-how-can-i-reactivate-it">An address has been marked as inactive. How can I reactivate it?</a></li></ul> </div> </div> <div class="update " id="upcoming-tls-configuration-changes-for-api-users-action-may-be-required"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/upcoming-tls-configuration-changes-for-api-users-action-may-be-required" class="update_date">February 16, 2021</a> </div> <h2 class="update_title">Upcoming TLS configuration changes for API users—action may be required</h2> <div class="update_intro"><p>To ensure the continued security of our systems, we wanted to let you know about some upcoming changes to our TLS (Transport Layer Security) configurations for API access. <strong>These changes may affect your application’s ability to continue to send mail through Postmark, so please read through this post in detail. </strong>These changes do <strong>not</strong> affect sending via SMTP.</p></div> <a href="#" class="update_more-link" data-toggle="#upcoming-tls-configuration-changes-for-api-users-action-may-be-required">Show details</a> </div> <div class="update_body"> <h2>What’s changing</h2> <p><strong>O</strong><strong>n April 13, 2021, we are going to</strong> <strong>(1)</strong><strong> disable TLSv1.0 access,</strong> <strong>(2)</strong><strong> disable all RC4 and low-strength ciphers, and</strong> <strong>(3)</strong><strong> add HSTS headers.</strong></p> <p><strong></strong>Here’s the full timeline of the changes:</p> <ul><li><strong>February 16, 2021 (today)</strong>: Announcement of the changes, and testing endpoints are made available.</li><li><strong>February 23, 2021: </strong>All Postmark customers are notified about upcoming changes via email and an in-app notification. </li><li><strong>March 16, 2021: </strong>Dedicated e<strong></strong>mail outreach to all accounts that are still connecting to Postmark via TLSv1.0.</li><li><strong>March 23, 2021 (</strong><strong>11 am ET - 12 pm ET)</strong><strong>:</strong> Perform “blackout” test, where we cut over to the new configuration for one hour in production.</li><li><strong>March 25, 2021: </strong>Dedicated email outreach to all accounts that are still connecting to Postmark via TLSv1.0</li><li><strong>March 30, 2021 (11 am ET - 11 pm ET):</strong> Perform another “blackout” test, where we cut over to the new configuration for 12 hours in production.</li><li><strong>April 13, 2021:</strong> Cut over production to new configuration permanently.</li><li><strong>April 20, 2021:</strong> Decommission temporary testing SSL endpoint.</li></ul> <p>We’ll discuss each change below, as well as your next steps to make sure sending isn’t interrupted.<br></p> <h3>Disabling TLSv1.0 access</h3> <p>TLSv1.0 has been deprecated, and we are following suit.</p> <p><strong>Impact:</strong> Connections that only support TLSv1.0 would not be able to connect anymore after this change.<br></p> <h3>Disabling all RC4 and low-strength ciphers</h3> <p>RC4 ciphers are considered weak and they are deprecated as well. Along with this, we are getting rid of any low-strength ciphers that are vulnerable to breaks as well. </p> <p><strong>Impact: </strong>Connections that only support these old/weak ciphers would not be able to connect anymore after this change.<br></p> <h3>Adding HSTS headers</h3> <p>HSTS (HTTP Strict Transport Security) headers tell web clients to only ever connect to a URL over HTTPS for a period of time (usually 6 months to 1 year). This prevents something called a “downgrade attack”, where users are tricked into visiting a version of a URL that is not secured or validated with TLS.</p> <p><strong>Impact: </strong>We are adding these headers in accordance with industry standards. There is no API connectivity impact.<br></p> <h2>What you need to do</h2> <p>If you send with Postmark via our API, <strong>please make sure that your sending infrastructure is able to deal with these changes prior to the April 13 cutover date.</strong><strong></strong><strong></strong></p> <p>We’ve set up a temporary endpoint at <code>api-ssl-temp.postmarkapp.com</code> that has these changes already applied. You can use this as an endpoint to test/validate against. Please be aware that there is no expectation of uptime on this endpoint, and that it will be shut down on April 20, 2021 with no further notice. It should only be used for temporary testing of non-production traffic.</p> <p>If any of your tests with the temporary endpoint fail, updating your OpenSSL library should resolve the issue. If you are having trouble getting your API integration to work with this temporary endpoint, please <a target="_blank" data-target-href="https://postmarkapp.com/contact" href="https://postmarkapp.com/contact" rel="noreferrer nofollow noopener">contact our support team</a> and let us know the exact error message encountered when attempting to connect, and a log of the connection attempt. We may be able to provide specific instructions for using newer TLS configurations.</p> <h2>Additional details related to specific libraries</h2> <ul><li><a href="https://github.com/activecampaign/postmark.js/issues/77">Postmark.js library</a></li><li><a href="https://github.com/activecampaign/postmark-gem/issues/102">Postmark gem</a></li><li><a href="https://github.com/activecampaign/postmark-dotnet/issues/92">Postmark .Net Library</a></li><li><a href="https://wordpress.org/plugins/postmark-approved-wordpress-plugin/#tls%20version%20requirements%2Fcompatibility">Wordpress plugin</a></li><li><a href="https://github.com/activecampaign/postmark-php/issues/78">Postmark PHP library</a></li><li><a href="https://github.com/activecampaign/postmark-rails/wiki/Known-issues-and-how-to-resolve-them" target="_blank">Postmark Rails gem</a></li></ul> </div> </div> <div class="update " id="the-postmark-plugin-for-craft-cms-now-supports-message-streams"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/libraries" class="update_type update_type--libraries">Libraries</a> <a href="https://postmarkapp.com/updates/the-postmark-plugin-for-craft-cms-now-supports-message-streams" class="update_date">February 16, 2021</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/how-to-reliably-deliver-craft-email-with-the-postmark-plugin">The Postmark plugin for Craft CMS now supports Message Streams</a></h2> <div class="update_intro"><p>We added <a href="https://postmarkapp.com/message-streams">Message Streams</a> support to the <a href="https://plugins.craftcms.com/postmark">Postmark plugin for Craft CMS</a> so you can now specify which stream you’d like to use to send email through Craft. Previously, Craft would always send over your default transactional Message Stream.<br /></p> <p>Plus, because the plugin now also supports Broadcast Message Streams, you can now use Postmark to send bulk email via Craft Campaign. </p> <p><a href="https://postmarkapp.com/blog/how-to-reliably-deliver-craft-email-with-the-postmark-plugin" target="_blank" rel="noreferrer noopener">Learn more about integrating Postmark with Craft CMS → </a></p></div> </div> </div> <h2 class="updates_date" id="december-2020"><a href="#december-2020">December, 2020</a></h2> <div class="update " id="postmark-cli-v1-5-8-template-command-improvements-and-more"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/labs" class="update_type update_type--labs">Labs</a> <a href="https://postmarkapp.com/updates/postmark-cli-v1-5-8-template-command-improvements-and-more" class="update_date">December 15, 2020</a> </div> <h2 class="update_title"><a href="https://github.com/activecampaign/postmark-cli/releases/tag/1.5.8">Postmark CLI v1.5.8: Template command improvements and more</a></h2> <div class="update_intro"><p>Version 1.5.8 includes some helpful improvements to the template push command and template preview tool. Check out the <a href="https://github.com/activecampaign/postmark-cli/releases/tag/1.5.8">release notes</a> for all the details.</p></div> </div> </div> <h2 class="updates_date" id="september-2020"><a href="#september-2020">September, 2020</a></h2> <div class="update " id="new-ip-for-webhooks-action-may-be-required"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/new-ip-for-webhooks-action-may-be-required" class="update_date">September 17, 2020</a> </div> <h2 class="update_title">New IP for webhooks: action may be required</h2> <div class="update_intro"><p>We plan to start posting webhooks from a new IP in a few weeks. If your application restricts access to public IPs, please ensure that the following IP is allowlisted:</p> <ul><li>3.134.147.250</li></ul> <p><strong>We intend to start moving webhook traffic to this new IP on October 1, 2020</strong>, so please make sure the IP is allowed by any firewall or routing rules you may be using.</p></div> </div> </div> <h2 class="updates_date" id="july-2020"><a href="#july-2020">July, 2020</a></h2> <div class="update " id="postmark-scheduled-maintenance-july-11-2020"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/postmark-scheduled-maintenance-july-11-2020" class="update_date">July 2, 2020</a> </div> <h2 class="update_title">Postmark Scheduled Maintenance — July 11, 2020</h2> <div class="update_intro"><p>On Saturday, July 11, 2020, Postmark will be performing necessary database maintenance starting at 10:00 am Eastern Time. <strong>We expect the maintenance to last about 2 hours</strong>. The affected services will be:<br /></p> <ul><li><strong>All outbound and inbound messages will be queued for approximately 30-40 minutes during the maintenance</strong>. During this time no mail will be processed, but we will accept and queue all messages.</li><li>The web app will be unavailable during the maintenance.</li></ul> <p>Throughout the maintenance window, we will post updates on our <a target="_blank" href="https://status.postmarkapp.com/" rel="noreferrer noopener">Status page</a> to keep you updated on the progress, including <strong>when exactly messages will be queued</strong>. Please <a target="_blank" href="https://postmarkapp.com/contact" rel="noreferrer noopener">get in touch</a> if you have any questions or feedback.</p> <p>P.S. We recently announced that <a href="https://postmarkapp.com/updates/reminder-new-public-api-endpoints-action-may-be-required">we are adding new public API endpoints</a>. Please make sure these IPs are allowed by any firewall or routing rules you may be using.</p></div> </div> </div> <h2 class="updates_date" id="june-2020"><a href="#june-2020">June, 2020</a></h2> <div class="update " id="postmark-scheduled-maintenance-june-27-2020"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/postmark-scheduled-maintenance-june-27-2020" class="update_date">June 16, 2020</a> </div> <h2 class="update_title">[Postponed] Postmark Scheduled Maintenance — June 27, 2020</h2> <div class="update_intro"><p>The database maintenance originally scheduled for June 27 is being postponed. A new date will be forthcoming. Original update below.</p><p>---</p><p>On Saturday, June 27, 2020, Postmark will be performing necessary database maintenance starting at 10:00 am Eastern Time. <strong>We expect the maintenance to last about 2 hours</strong>. The affected services will be:<br /></p><ul><li><strong>All outbound and inbound messages will be queued for approximately 10-15 minutes during the maintenance</strong>. During this time no mail will be processed, but we will accept and queue all messages.</li><li>At various points during the maintenance window, the web app might be unresponsive, and you might see some intermittent API errors.</li></ul><p>Throughout the maintenance window, we will post updates on our <a target="_blank" href="https://status.postmarkapp.com/" rel="noreferrer noopener">Status page</a> to keep you updated on the progress, including <strong>when exactly messages will be queued</strong>. Please <a target="_blank" href="https://postmarkapp.com/contact" rel="noreferrer noopener">get in touch</a> if you have any questions or feedback.</p></div> </div> </div> <div class="update " id="reminder-new-public-api-endpoints-action-may-be-required"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/reminder-new-public-api-endpoints-action-may-be-required" class="update_date">June 11, 2020</a> </div> <h2 class="update_title">Reminder: New public API endpoints — action may be required</h2> <div class="update_intro"><p>We <a href="https://postmarkapp.com/updates/new-public-api-endpoints-action-may-be-required">recently announced</a> that to help increase the capacity of our API we plan to add new public endpoints in the coming weeks. If your application restricts access to public IPs, please ensure that the following IPs are whitelisted:</p><ul><li>3.137.63.180</li><li>18.216.134.80</li></ul><p>We originally intended to start moving API traffic to these new IPs in March, but <strong>we now plan to start using these IPs in production on June 22nd</strong>. Please make sure these IPs are allowed by any firewall or routing rules you may be using.</p></div> </div> </div> <h2 class="updates_date" id="april-2020"><a href="#april-2020">April, 2020</a></h2> <div class="update update--cover" id="postmark-for-ios-v1-3-0-released"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/mobile" class="update_type update_type--mobile">Mobile</a> <a href="https://postmarkapp.com/updates/postmark-for-ios-v1-3-0-released" class="update_date">April 6, 2020</a> </div> <h2 class="update_title"><a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.3.0Update&mt=8">Postmark for iOS v1.3.0 released</a></h2> <a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.3.0Update&mt=8"> <img src="https://craft-assets.postmarkapp.com/images/ios-app-v1.3.0%402x.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>You can now view your stats and activity by Message Stream. We’ve also added support for <a href="https://support.apple.com/en-us/HT210332">Dark Mode</a> in iOS 13+.<br /></p><figure><a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.2.0Update&mt=8" target="_blank" rel="noreferrer noopener"><img src="/images/ios/app-store-button.svg" alt="Download Postmark on the App Store" width="137" height="46" title="Download Postmark on the App Store" /></a></figure></div> </div> </div> <div class="update update--cover" id="postmark-for-wordpress-v1-12-with-message-stream-support-is-live"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/libraries" class="update_type update_type--libraries">Libraries</a> <a href="https://postmarkapp.com/updates/postmark-for-wordpress-v1-12-with-message-stream-support-is-live" class="update_date">April 1, 2020</a> </div> <h2 class="update_title"><a href="https://wordpress.org/plugins/postmark-approved-wordpress-plugin/">Postmark for WordPress v1.12 with Message Stream support is live</a></h2> <a href="https://wordpress.org/plugins/postmark-approved-wordpress-plugin/"> <img src="https://craft-assets.postmarkapp.com/customers/preview-full-v1.12.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>Postmark for WordPress v1.12 is now live! It adds support for Message Streams. You can now specify which stream you want to use in the plugin settings.</p></div> </div> </div> <h2 class="updates_date" id="march-2020"><a href="#march-2020">March, 2020</a></h2> <div class="update " id="auto-incrementing-bounce-ids-will-exceed-32-bit-integers-soon-action-may-be-required"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/auto-incrementing-bounce-ids-will-exceed-32-bit-integers-soon-action-may-be-required" class="update_date">March 24, 2020</a> </div> <h2 class="update_title">Auto-incrementing Bounce IDs will exceed 32-bit integers soon - action may be required</h2> <div class="update_intro"><p>Auto-incrementing Bounce IDs will exceed signed 32-bit integers in the next 2-3 months. If you store these IDs in a database, or process them using your own code, please ensure you update your DB/application to use int64 values. As an even better solution, instead of using Bounce IDs for your application needs, consider switching to using our new <a target="_blank" href="https://postmarkapp.com/developer/api/suppressions-api" rel="noreferrer noopener">Suppressions API,</a> which avoids the need for this ID altogether. Please <a target="_blank" href="https://postmarkapp.com/contact" rel="noreferrer noopener">let us know</a> if you have any questions.</p></div> </div> </div> <div class="update " id="new-public-api-endpoints-action-may-be-required"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/new-public-api-endpoints-action-may-be-required" class="update_date">March 2, 2020</a> </div> <h2 class="update_title">New public API endpoints: action may be required</h2> <div class="update_intro"><p>To help increase the capacity of our API we plan to add new public endpoints in a few weeks. If your application restricts access to public IPs, please ensure that the following IPs are whitelisted:<br /></p><ul><li>3.137.63.180</li><li>18.216.134.80</li></ul><p>We intend to start moving API traffic to these new IPs on March 16, 2020, so please make sure these IPs are allowed by any firewall or routing rules you may be using.</p></div> </div> </div> <h2 class="updates_date" id="february-2020"><a href="#february-2020">February, 2020</a></h2> <div class="update " id="upcoming-changes-to-bounce-message-retention"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/upcoming-changes-to-bounce-message-retention" class="update_date">February 17, 2020</a> </div> <h2 class="update_title">Upcoming Changes to Bounce Message Retention</h2> <div class="update_intro"><p>We wanted to give you an update to let you know of an upcoming change in our data retention policy for bounce events. <strong>These changes will go into effect on April 1st</strong> (yes, really).</p></div> <a href="#" class="update_more-link" data-toggle="#upcoming-changes-to-bounce-message-retention">Show details</a> </div> <div class="update_body"> <p>As mentioned in our current <a target="_blank" data-target-href="https://postmarkapp.com/eu-privacy#security-and-privacy" href="https://postmarkapp.com/eu-privacy#security-and-privacy" rel="noreferrer nofollow noopener">data retention policy</a>, after 45 days we remove all original message content and metadata from our system. For bounce reports, however, even though we remove the original message content after 45 days, metadata and the content of the actual bounce message have historically been retained for up to 1 year to enable troubleshooting.</p><p>In order to simplify our data retention policies, and also make sure that we do not keep data for longer than necessary, we are planning to make a change to this policy. As of today, new bounces will be deleted from our system 45 days after they are received. In short, our <strong>updated </strong><strong>data retention policy </strong><strong>has been simplified so </strong><strong>that after 45 days we remove all original message content and metadata from our system, with no exceptions</strong>.</p><p>With this change, you will no longer see bounces older than 45 days when searching in your Activity feed, but you will always be able to see a searchable, full list of suppressed addresses within the Suppressions tab. Since bounces reactivation has historically been tied to <em>BounceIDs</em>, it has been necessary for customers to query for bounces, get a special <em>BounceID</em>, and then use the `/reactivate` endpoint with that ID. Depending on your workflow, <strong>reactivating bounces </strong><strong><em>after</em></strong><strong> 45 days using this process will no longer work</strong>. But, we’ve got you covered:</p><p>With the recent release of our <a target="_blank" data-target-href="https://postmarkapp.com/blog/feature-announcement-manage-all-suppressed-recipients-in-one-place" href="https://postmarkapp.com/blog/feature-announcement-manage-all-suppressed-recipients-in-one-place" rel="noreferrer nofollow noopener">Suppression UI and API</a> you can easily search for inactive addresses, see the reason the address is inactive (block, hard bounce, etc.), and reactivate the address if possible. We recommend using this new API for all address reactivations, because it only requires one API call, rather than two, and will ensure addresses are reactivated, regardless of the suppression reason.</p><p><strong>To Summarize:</strong><br></p><ul><li>Our retention policy for new bounce events is now set to 45 days. After 45 days, we will purge bounces. This is consistent with our data retention policy for all other types of message data.</li><li>Starting today, all new bounces will be stored in our system for 45 days, which means it will be fully rolled out in 45 days, on April 1st. Existing bounces will remain available during this transition.</li><li>For some very specific edge-cases (activating bounces older than 45 days will result in an error) we recommend you use the <a target="_blank" data-target-href="https://postmarkapp.com/developer/api/suppressions-api" href="https://postmarkapp.com/developer/api/suppressions-api" rel="noreferrer nofollow noopener">new Suppressions API</a> for all your email reactivation needs.</li></ul><p>As always, if you have any questions or concerns about any of these changes, please <a target="_blank" data-target-href="https://postmarkapp.com/contact" href="https://postmarkapp.com/contact" rel="noreferrer nofollow noopener">let us know</a>.</p> </div> </div> <h2 class="updates_date" id="january-2020"><a href="#january-2020">January, 2020</a></h2> <div class="update " id="postmark-cli-v1-4-6-template-test-model-storage"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/labs" class="update_type update_type--labs">Labs</a> <a href="https://postmarkapp.com/updates/postmark-cli-v1-4-6-template-test-model-storage" class="update_date">January 28, 2020</a> </div> <h2 class="update_title"><a href="https://github.com/activecampaign/postmark-cli/releases/tag/1.4.6">Postmark CLI v1.4.6: Template test model storage</a></h2> <div class="update_intro"><p>You can now test your templates using a custom model! Check out the <a href="https://github.com/activecampaign/postmark-cli/releases/tag/1.4.6">release notes</a> for more details.</p></div> </div> </div> <h2 class="updates_date" id="november-2019"><a href="#november-2019">November, 2019</a></h2> <div class="update update--cover" id="postmark-cli-template-preview-command"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/labs" class="update_type update_type--labs">Labs</a> <a href="https://postmarkapp.com/updates/postmark-cli-template-preview-command" class="update_date">November 21, 2019</a> </div> <h2 class="update_title"><a href="https://github.com/activecampaign/postmark-cli/releases/tag/1.3.2">Postmark CLI v1.3.2: Template preview command</a></h2> <a href="https://github.com/activecampaign/postmark-cli/releases/tag/1.3.2"> <img src="https://craft-assets.postmarkapp.com/images/CLI-template-preview.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>We've added a new command that spins up a local web server so that you can easily preview your compiled templates.</p> <ul><li>Standard templates are compiled with their layout</li><li><a href="https://postmarkapp.com/support/article/1077-template-syntax">Mustachio syntax</a> rendering</li><li>HTML and text version previews</li><li>Small and large screen previews</li><li>Hot reloading - Your browser will automatically reload each time you change your template</li></ul> <p>Check out the <a href="https://github.com/activecampaign/postmark-cli/releases/tag/1.3.2">release notes</a> for more details.</p></div> </div> </div> <div class="update " id="api-update-deprecating-bounces-tags"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/api-update-deprecating-bounces-tags" class="update_date">November 12, 2019</a> </div> <h2 class="update_title">API update: deprecating /bounces/tags</h2> <div class="update_intro"><p>The <code>/bounces/tags</code> endpoint is used to return all tags from bounced messages as a string array. This endpoint gets extremely low utilization, so <strong>we are deprecating it on December 2nd, 2019</strong>. We are reaching out to the few customers who use this endpoint directly to help them transition.</p><p>If you do have a need to filter bounces by a specific tag, a better approach is to use the <code>/bounces</code> endpoint with filtering, as <a href="https://postmarkapp.com/developer/api/bounce-api#bounces">outlined in our docs here</a>.</p><p>If you have any questions about this, please <a href="https://postmarkapp.com/contact">contact our support team</a>.</p></div> </div> </div> <div class="update " id="api-update-modular-webhook-management"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/api-update-modular-webhook-management" class="update_date">November 5, 2019</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/developer/api/webhooks-api">API update: Modular Webhook management</a></h2> <div class="update_intro"><p>Back in March 2018 we <a href="https://postmarkapp.com/blog/feature-announcement-modular-webhooks">released modular webhooks</a>, allowing you to choose which events you’d like to send to each specified hook URL. Up to now this has only been possible through the UI. We’re happy to announce that we just released a brand new <code>/webhooks</code> API endpoint, which brings support for the setup and maintenance of modular webhooks, as well as some of the <a href="https://postmarkapp.com/blog/feature-announcement-introducing-message-streams">Message Stream functionality</a> we’ve been working on. </p></div> <a href="#" class="update_more-link" data-toggle="#api-update-modular-webhook-management">Show details</a> </div> <div class="update_body"> <p>The new endpoint lets you list all existing webhook configurations; retrieve a specific configuration; and of course create, update, and delete modular webhook configurations.</p><p>Note that at this point we haven’t made any changes to how our <code>/server</code> and <code>/servers</code> endpoints work with regard to webhooks. Setting/updating webhooks via that endpoint will continue to set a single hook for your default transactional stream. We plan to update this in the future, but we’ll give you plenty of advance notice when that happens.</p><p>For details on how to use the new <code>/webhooks</code> endpoint, <a href="https://postmarkapp.com/developer/api/webhooks-api">head over to our docs</a>. And if you have any questions, please <a href="https://postmarkapp.com/contact">let us know</a>!</p> </div> </div> <h2 class="updates_date" id="october-2019"><a href="#october-2019">October, 2019</a></h2> <div class="update " id="security-upgrades-to-smtp-sending-action-may-be-required"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/security-upgrades-to-smtp-sending-action-may-be-required" class="update_date">October 29, 2019</a> </div> <h2 class="update_title">Security upgrades to SMTP sending — action may be required</h2> <div class="update_intro"><p><em>Updated December 3, 2019 with new key dates.</em></p><p>We wanted to let you know about a few changes we’re making to SMTP sending in the coming weeks to make this endpoint more secure. These changes will only affect sending via SMTP. If you use <em>only</em> the Postmark REST API to send, no further action is required on your part.</p></div> <a href="#" class="update_more-link" data-toggle="#security-upgrades-to-smtp-sending-action-may-be-required">Show details</a> </div> <div class="update_body"> <h2>What’s changing</h2><p>The following changes will be made to our supported SMTP TLS configuration:</p><ul> <li>Deprecation and removal of TLSv1.0 support. Going forward we will only support connections via TLSv1.1 or higher.</li> <li>Deprecation and removal of several older and less secure cipher suites.</li> <li>Modification of cipher parameters to require larger key sizes.</li></ul><p>We understand that this type of change can be disruptive, so we want to provide you with ample time to test and verify that your application will be able to continue sending mail using the updated security settings.</p><p>These are the key dates for these changes:</p><ul> <li><strong>October 29th, 2019</strong> <strong>(today):</strong> Deprecation announcement, and testing endpoints are made available.</li> <li><strong>January 27, 2020: </strong>“Blackout testing”. We will temporarily move SMTP traffic to the updated configuration for a few hours throughout the day so that customers that have not seen this notice are alerted to issues before the final cutover.</li> <li><strong>February 1, 2020:</strong> All production traffic will be moved to the updated security configuration.</li></ul><p>The most significant change, which might affect you, is that <strong>we are disabling TLSv1.0 on </strong><strong>February 1, 2020</strong>. This protocol is old and vulnerable, so we will be rejecting connection requests that use TLSv1.0.</p><h2>What you need to do</h2><p>Before the cutover date on February 1, 2020, we recommend that you perform some tests against the following <em>temporary</em> testing endpoint: <code>future-smtp.postmarkapp.com</code>. This endpoint matches the changes we’ll be making, so if everything works as expected, you’re good to go. Just switch back to using <code>smtp.postmarkapp.com</code> and no further action will be needed.</p><p>If you run into any issues using the temporary endpoint (i.e., your SMTP client is unable to connect), please change your SMTP client configuration to use TLSv1.1 or higher, or upgrade your SMTP client to a version that supports TLSv1.1 or higher. Documentation for SMTP clients will typically provide configuration options, where you can see how to set the connection to use TLSv1.1 or higher. If there is not a version of your SMTP client that supports TLSv1.1, you will need to select a new SMTP client that does support TLSv1.1 or higher in order to continue using Postmark.</p><p>If you are unable to get an SMTP client that is compatible with TLSv1.1 or higher working with the new SMTP endpoint, please <a href="https://postmarkapp.com/contact">contact our support team</a> and let us know the following details:</p><ul><li>What OS and SMTP client you’re using to connect, as well as any additional information that might be helpful (e.g., what PHP or OpenSSL version you are using).</li><li>Exact error message encountered when attempting to connect and log of the connection attempt.</li></ul><p>We may be able to provide specific instructions for opting into using newer TLS configurations.</p><p>Once again, <strong>we are going to disable TLSv1.0 on February 1, 2020</strong>. Please perform all testing and make any necessary code changes before this date.</p><p>Please let us know if you have any questions about these changes.</p> </div> </div> <div class="update update--cover" id="template-comparison-tool-improvements"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/template-comparison-tool-improvements" class="update_date">October 3, 2019</a> </div> <h2 class="update_title">Template comparison tool improvements</h2> <img src="https://craft-assets.postmarkapp.com/customers/Template-comparison.png" alt="" class="update_cover"> <div class="update_intro"><p>Our template comparison tool now lets you review code changes and quickly navigate between templates. This tool is available when <a href="https://postmarkapp.com/blog/feature-announcement-easier-template-management-across-environments">pushing templates between servers</a>.<br /></p></div> </div> </div> <h2 class="updates_date" id="september-2019"><a href="#september-2019">September, 2019</a></h2> <div class="update " id="ending-support-for-tags-triggers-api"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/ending-support-for-tags-triggers-api" class="update_date">September 17, 2019</a> </div> <h2 class="update_title">We are ending support for the Tags Triggers API on October 14th, 2019</h2> <div class="update_intro"><p>A small number of customers use our Tags Triggers API to track open events on emails sent with specific tags. We’re working on some more powerful features in our other API endpoints, so <strong>w</strong><strong>e are ending support for this feature, and it will be disabled on October 14th, 2019</strong>. We ask that customers who currently use this API to track opens based on tags update their applications to instead enable open tracking on <a target="_blank" href="https://postmarkapp.com/developer/user-guide/tracking-opens/tracking-opens-per-message-stream" rel="noreferrer noopener">a Message Stream level</a>, or <a target="_blank" href="https://postmarkapp.com/developer/user-guide/tracking-opens/tracking-opens-per-email" rel="noreferrer noopener">for individual messages</a>.</p><p>Please let us know if you have any questions about this, or if we can help in any way to make the transition to stream- or message-level tracking.</p></div> </div> </div> <div class="update " id="additional-smtp-endpoint-ips-added"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/additional-smtp-endpoint-ips-added" class="update_date">September 10, 2019</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/support/article/800-ips-for-firewalls">Additional SMTP Endpoint IPs Added</a></h2> <div class="update_intro"><p>We have added the following IPs to our SMTP endpoint service. If you send email using SMTP and explicitly whitelist our SMTP endpoint IPs, these will need to be added:</p></div> <a href="#" class="update_more-link" data-toggle="#additional-smtp-endpoint-ips-added">Show details</a> </div> <div class="update_body"> <ul><li>3.208.98.158</li><li>3.93.205.235</li><li>3.95.122.1</li><li>13.209.189.43</li><li>15.164.159.110</li><li>52.208.94.138</li><li>52.210.34.36</li><li>54.77.222.65</li></ul> </div> </div> <div class="update update--cover" id="introducing-message-streams"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/introducing-message-streams" class="update_date">September 5, 2019</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-introducing-message-streams">Introducing Message Streams</a></h2> <a href="https://postmarkapp.com/blog/feature-announcement-introducing-message-streams"> <img src="https://craft-assets.postmarkapp.com/images/Message-streams.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>Today we are releasing the first in a series of product changes to get us to the point where you can send <em>all</em> your email through Postmark. This release introduces the concept of <strong>Message Streams</strong> to the Postmark UI.</p><p>A Message Stream is a way to organize and separate your sending within a server. We know that some people use servers as environments, while others use it to separate clients, apps, etc. Message Streams give you an additional way to separate your sending and reduce the proliferation of servers on your dashboard.</p> <p>Check out our <a href="https://postmarkapp.com/blog/feature-announcement-introducing-message-streams">blog post</a> for all the details.</p></div> </div> </div> <h2 class="updates_date" id="august-2019"><a href="#august-2019">August, 2019</a></h2> <div class="update " id="postmark-php-library-v2-8-0-released"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/libraries" class="update_type update_type--libraries">Libraries</a> <a href="https://postmarkapp.com/updates/postmark-php-library-v2-8-0-released" class="update_date">August 22, 2019</a> </div> <h2 class="update_title"><a href="https://github.com/activecampaign/postmark-php/releases/tag/2.8.0">Postmark PHP library v2.8.0 released</a></h2> <div class="update_intro"><p>This release adds support for our Template Layouts. Find more information about Layouts in our <a href="https://postmarkapp.com/blog/feature-announcement-introducing-layouts-for-reusable-components-in-templates">blog post</a> and in our <a href="https://postmarkapp.com/developer/api/templates-api">Templates API Docs</a>.</p></div> </div> </div> <div class="update " id="mailmason-v1-0-released"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/labs" class="update_type update_type--labs">Labs</a> <a href="https://postmarkapp.com/updates/mailmason-v1-0-released" class="update_date">August 5, 2019</a> </div> <h2 class="update_title"><a href="https://github.com/activecampaign/mailmason/releases/tag/v1.0.0">MailMason v1.0 released</a></h2> <div class="update_intro"><p>We released a bunch of improvements to <a href="https://github.com/activecampaign/mailmason">MailMason's</a> workflow. This includes the ability to push your templates up to Postmark as well as general maintenance and package upgrades. We've also made design and accessibility improvements to the starter templates that ship with MailMason.</p></div> <a href="#" class="update_more-link" data-toggle="#mailmason-v1-0-released">Show details</a> </div> <div class="update_body"> <ul><li>You can now <a href="https://github.com/activecampaign/mailmason/wiki/Usage#pushing-templates-to-postmark">push templates and layouts</a> up to Postmark using the <a href="https://github.com/activecampaign/postmark-cli">postmark-cli</a> tool</li><li>MailMason’s layouts are now compatible with <a href="https://postmarkapp.com/blog/feature-announcement-introducing-layouts-for-reusable-components-in-templates" rel="nofollow">Postmark layouts</a></li><li>General codebase improvements to build structure and package upgrades</li></ul> <figure><img src="https://craft-assets.postmarkapp.com/blog/starter-templates%402x.png" data-image="7658"></figure> <ul><li>3 generic layout options to help you get up and running</li><li>Each template now uses <a href="https://fonts.google.com/specimen/Nunito+Sans" rel="nofollow">Nunito Sans</a> as the main typeface. Fallback fonts for older versions of Outlook have also been considered.</li><li>Dark mode support in all layouts. Works with email clients that support the <code>prefers-color-scheme:dark</code> media query.</li></ul> <figure><img src="https://craft-assets.postmarkapp.com/blog/dark-mode%402x.png" data-image="7659"></figure> </div> </div> <h2 class="updates_date" id="june-2019"><a href="#june-2019">June, 2019</a></h2> <div class="update update--cover" id="feature-announcement-introducing-layouts-for-reusable-components-in-templates"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/feature-announcement-introducing-layouts-for-reusable-components-in-templates" class="update_date">June 25, 2019</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-introducing-layouts-for-reusable-components-in-templates">Introducing Layouts for reusable components in Templates</a></h2> <a href="https://postmarkapp.com/blog/feature-announcement-introducing-layouts-for-reusable-components-in-templates"> <img src="https://craft-assets.postmarkapp.com/blog/Template-layouts.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>We know how frustrating it is to edit common elements like the date in a footer, or a logo, or a design change you want to make across all your <a href="https://postmarkapp.com/transactional-email-templates">transactional email templates</a>. <strong>So today we are really excited to announce the release of Postmark Layouts — a way to define commons elements like CSS, Headers, and Footers, and reuse those Layouts across many Templates.</strong></p></div> </div> </div> <h2 class="updates_date" id="may-2019"><a href="#may-2019">May, 2019</a></h2> <div class="update update--cover" id="introducing-the-postmark-cli"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/labs" class="update_type update_type--labs">Labs</a> <a href="https://postmarkapp.com/updates/introducing-the-postmark-cli" class="update_date">May 28, 2019</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-introducing-the-postmark-cli">Introducing the Postmark CLI</a></h2> <a href="https://postmarkapp.com/blog/feature-announcement-introducing-the-postmark-cli"> <img src="https://craft-assets.postmarkapp.com/blog/CLI-Latest-updates.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>Postmark now has an <a href="https://github.com/wildbit/postmark-cli">official command-line interface</a> 🎉. We built a proof of concept earlier this year during our company-wide hack week, and now it’s available for everyone!</p></div> </div> </div> <div class="update " id="important-changes-to-the-way-we-handle-headers-when-sending-with-smtp"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <span class="update_bug-fix">Bug Fix</span> <a href="https://postmarkapp.com/updates/important-changes-to-the-way-we-handle-headers-when-sending-with-smtp" class="update_date">May 23, 2019</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/announcement-changes-to-the-way-we-handle-headers-when-sending-with-smtp">Important changes to the way we handle headers when sending with SMTP</a></h2> <div class="update_intro"><p>On <strong>Monday, May 20th</strong> we made a change to the way we process SMTP headers for emails that are sent with SMTP. <strong>Please note that this change does</strong> <strong><em>not</em></strong> <strong>affect sending via the API.</strong></p></div> <a href="#" class="update_more-link" data-toggle="#important-changes-to-the-way-we-handle-headers-when-sending-with-smtp">Show details</a> </div> <div class="update_body"> <p>Historically, when Postmark accepted messages over SMTP, we have constructed the <code>To</code>, <code>Cc</code>, and <code>Bcc</code> headers for messages sent to show only the subset of recipients you specify during sending. In some uncommon cases, this behavior meant that not all recipients would be visible in the message that is delivered to your recipients.<br></p> <p>With this update, we will ensure that the recipients that are visible in your messages’ <code>To</code> and <code>Cc</code> headers are the same as what will be shown to the final recipients of your messages. We will no longer reconstruct them based on our older behavior, which, in some uncommon cases, could have prevented some recipients from being displayed in the final email that we deliver.</p><p>Read the <a href="https://postmarkapp.com/blog/announcement-changes-to-the-way-we-handle-headers-when-sending-with-smtp">blog post</a> for full details.</p> </div> </div> <h2 class="updates_date" id="april-2019"><a href="#april-2019">April, 2019</a></h2> <div class="update update--cover" id="a-more-granular-status-page"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/a-more-granular-status-page" class="update_date">April 9, 2019</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-a-more-granular-status-page">A more granular status page</a></h2> <a href="https://postmarkapp.com/blog/feature-announcement-a-more-granular-status-page"> <img src="https://craft-assets.postmarkapp.com/customers/service-status.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>We just released an update to the status page that lets you see the status of each individual service, and also drill down into the response times and past incidents for each service.</p></div> </div> </div> <h2 class="updates_date" id="march-2019"><a href="#march-2019">March, 2019</a></h2> <div class="update update--cover" id="the-postmark-web-app-has-gone-responsive"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/mobile" class="update_type update_type--mobile">Mobile</a> <a href="https://postmarkapp.com/updates/the-postmark-web-app-has-gone-responsive" class="update_date">March 4, 2019</a> </div> <h2 class="update_title"><a href="https://account.postmarkapp.com/servers">The Postmark web app has gone responsive</a></h2> <a href="https://account.postmarkapp.com/servers"> <img src="https://craft-assets.postmarkapp.com/images/responsive-web-app.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>Have you been frustrated while trying to use your phone to view your Postmark stats or find a specific email in your activity feed? Us too! So we’re happy to say that the Postmark web app is now — at long last — responsive. Like so:</p> <figure><img src="https://craft-assets.postmarkapp.com/customers/preview-full-pm-mobile.gif" alt="" /></figure><p>Please try it out and let us know if you have any feedback! </p></div> </div> </div> <h2 class="updates_date" id="february-2019"><a href="#february-2019">February, 2019</a></h2> <div class="update " id="smtp-encryption-changes"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/smtp-encryption-changes" class="update_date">February 26, 2019</a> </div> <h2 class="update_title">Starting March 7th our SMTP outbound servers will only support encrypted connections using TLS</h2> <div class="update_intro"><p>We will disable support for SSL v3 on March 7th, and going forward our servers will only support encrypted SMTP connections using TLS (1.0 - 1.3). Most customers will not be affected by this change. However, you can double check that your SMTP client is compatible by temporarily sending mail through <code>future-smtp.postmarkapp.com</code> instead of <code>smtp.postmarkapp.com</code>.</p> <p><code>future-smtp.postmarkapp.com</code> points to the new servers (and new IPs) and it does not allow SSL v3 connections. If you use connection to test and everything works well, no further action is needed and sending should continue through our current endpoint: <code>smtp.postmarkapp.com</code>.</p> <p>If you are having trouble connecting over <code>future-smtp.postmarkapp.com</code> you will need to update your SMTP client. Please can let us know if you are not able to resolve or update your SMTP client before the switchover date.</p></div> </div> </div> <h2 class="updates_date" id="january-2019"><a href="#january-2019">January, 2019</a></h2> <div class="update " id="postmark-ingress-support-added-to-action-mailbox"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/libraries" class="update_type update_type--libraries">Libraries</a> <a href="https://postmarkapp.com/updates/postmark-ingress-support-added-to-action-mailbox" class="update_date">January 21, 2019</a> </div> <h2 class="update_title"><a href="https://edgeguides.rubyonrails.org/action_mailbox_basics.html#postmark">Postmark ingress support added to Action Mailbox</a></h2> <div class="update_intro"><p>Action Mailbox is a new framework in Rails 6 that routes incoming emails to controller-like mailboxes for processing in Rails. You can get more information about Action Mailbox in the <a href="https://weblog.rubyonrails.org/2018/12/13/introducing-action-mailbox-for-rails-6/">introduction blog post</a>.</p><p>You can find implementation instructions in this <a href="https://edgeguides.rubyonrails.org/action_mailbox_basics.html">guide on Action Mailbox Basics</a>, including <a href="https://edgeguides.rubyonrails.org/action_mailbox_basics.html#postmark">specific instructions for Postmark</a>.</p></div> </div> </div> <div class="update update--cover" id="postmark-ios-v1-2-0"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/mobile" class="update_type update_type--mobile">Mobile</a> <a href="https://postmarkapp.com/updates/postmark-ios-v1-2-0" class="update_date">January 14, 2019</a> </div> <h2 class="update_title"><a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.2.0Update&mt=8">Postmark for iOS v1.2.0</a></h2> <a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.2.0Update&mt=8"> <img src="https://craft-assets.postmarkapp.com/images/ios-app-v1.2.0%402x.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>Today we released version 1.2.0 of the <a href="https://postmarkapp.com/ios">Postmark iOS app</a>! </p> <p>New in this update:</p> <ul><li>View <a href="https://postmarkapp.com/support/article/1125-custom-metadata-faq">custom metadata</a> for your messages.</li><li>New resources to help you resolve common bounces.</li><li>Find out if a server’s bounce or spam complaint rates are elevated and how to fix them.</li></ul><figure><a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.2.0Update&mt=8" target="_blank" rel="noreferrer noopener"><img src="/images/ios/app-store-button.svg" alt="Download Postmark on the App Store" width="137" height="46" title="Download Postmark on the App Store" /></a></figure></div> </div> </div> <h2 class="updates_date" id="december-2018"><a href="#december-2018">December, 2018</a></h2> <div class="update update--cover" id="easier-template-management-across-multiple-environments"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/easier-template-management-across-multiple-environments" class="update_date">December 17, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-easier-template-management-across-environments">Easier template management across multiple environments</a></h2> <a href="https://postmarkapp.com/blog/feature-announcement-easier-template-management-across-environments"> <img src="https://craft-assets.postmarkapp.com/images/Template-push.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>We just released an update that lets you push template changes from one server to another. Check out our <a href="https://postmarkapp.com/blog/feature-announcement-easier-template-management-across-environments">blog post</a> for all the details.</p></div> </div> </div> <div class="update update--cover" id="wordpress-v-11-released"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/libraries" class="update_type update_type--libraries">Libraries</a> <a href="https://postmarkapp.com/updates/wordpress-v-11-released" class="update_date">December 13, 2018</a> </div> <h2 class="update_title"><a href="https://github.com/activecampaign/postmark-wordpress">WordPress v1.11 released</a></h2> <a href="https://github.com/activecampaign/postmark-wordpress"> <img src="https://craft-assets.postmarkapp.com/images/Wordpress-Link-Tracking.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>Our WordPress plugin now supports link tracking! We've also fixed an issue where open and link tracking options were not honored when sending a test email.</p></div> </div> </div> <h2 class="updates_date" id="november-2018"><a href="#november-2018">November, 2018</a></h2> <div class="update update--cover" id="wordpress-v1-10-released"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/libraries" class="update_type update_type--libraries">Libraries</a> <a href="https://postmarkapp.com/updates/wordpress-v1-10-released" class="update_date">November 20, 2018</a> </div> <h2 class="update_title"><a href="https://github.com/activecampaign/postmark-wordpress">WordPress v1.10 released</a></h2> <a href="https://github.com/activecampaign/postmark-wordpress"> <img src="https://craft-assets.postmarkapp.com/images/preview-full-setting.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>We just released an update to the WordPress plugin that adds an optional setting for preserving logs of send attempts. It adds a new Logs tab that can be used to view the last 7 days of plugin sending activity.</p></div> <a href="#" class="update_more-link" data-toggle="#wordpress-v1-10-released">Show details</a> </div> <div class="update_body"> <p>Preserving send logs are useful for a couple of reasons:</p> <ul><li>You can check if your contact form or plugin generating emails is actually using <em>wp_mail </em>for sending<em> - </em>no log entry means it is not using <em>wp_mail</em> and therefore not compatible with Postmark for WordPress.</li><li>API responses are included, so you can see why send attempt(s) fail.</li></ul> <p>We heard a lot of feedback from users saying their plugin wasn't working but they had no idea why, and there was not an easy way to tell what was going wrong. Now, you can quickly see what is going on and resolve the more common errors, like trying to send from an address that isn't on your account yet, or trying to send to external recipients before you Postmark account is approved.</p> </div> </div> <div class="update " id="postmark-node-js-library-goes-to-v2"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/libraries" class="update_type update_type--libraries">Libraries</a> <a href="https://postmarkapp.com/updates/postmark-node-js-library-goes-to-v2" class="update_date">November 1, 2018</a> </div> <h2 class="update_title"><a href="https://github.com/activecampaign/postmark.js">Postmark Node.js Library goes to v2</a></h2> <div class="update_intro"><p>Our <a target="_blank" href="https://github.com/activecampaign/postmark.js" rel="noreferrer noopener">Postmark JavaScript library</a> just got a huge update. The biggest change is that we added TypeScript support, but there’s way more to it:</p> <ul><li>Migrated library to add <a target="_blank" href="https://www.typescriptlang.org/" rel="noreferrer noopener">TypeScript</a> support</li><li>Revamped the client with a simpler call model</li><li>Added custom error handling</li><li>Added all missing account level and server level API endpoints</li><li>Removed unneeded dependencies</li></ul> <p>We’ve already made <a target="_blank" href="https://github.com/activecampaign/postmark.js/releases" rel="noreferrer noopener">a few minor updates</a> based on feedback and additional real-world use, so make sure to grab the latest version. Check out <a target="_blank" href="https://github.com/activecampaign/postmark.js/wiki" rel="noreferrer noopener">the wiki</a> for more details, including a <a target="_blank" href="https://github.com/activecampaign/postmark.js/wiki/Migrating-from-1.x-to-2.x-version" rel="noreferrer noopener">migration guide for moving from 1.x to 2.x</a>.</p></div> </div> </div> <h2 class="updates_date" id="october-2018"><a href="#october-2018">October, 2018</a></h2> <div class="update update--cover" id="search-for-templates-from-the-ui"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/search-for-templates-from-the-ui" class="update_date">October 22, 2018</a> </div> <h2 class="update_title">Search for templates from the UI</h2> <img src="https://craft-assets.postmarkapp.com/images/template-search.png" alt="" class="update_cover"> <div class="update_intro"><p>You can now for search for a template from the UI. No more sifting through pages and pages of templates to find what you’re looking for!</p></div> </div> </div> <div class="update update--cover" id="manage-template-aliases-and-search-for-templates-from-the-app"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/manage-template-aliases-and-search-for-templates-from-the-app" class="update_date">October 18, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/support/article/1117-how-do-i-use-a-template-alias">Manage template aliases from the UI</a></h2> <a href="https://postmarkapp.com/support/article/1117-how-do-i-use-a-template-alias"> <img src="https://craft-assets.postmarkapp.com/images/template-aliases.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>Back in March, we released template alias support to our API, and now you can manage template aliases from the UI as well. Template aliases make it easier to manage the same template across multiple servers. Check out our <a href="https://postmarkapp.com/support/article/1117-how-do-i-use-a-template-alias">help doc</a> for more info.</p></div> </div> </div> <div class="update update--cover" id="receive-service-status-notifications-from-our-slack-app"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/labs" class="update_type update_type--labs">Labs</a> <a href="https://postmarkapp.com/updates/receive-service-status-notifications-from-our-slack-app" class="update_date">October 15, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/slack-app">Receive service status notifications from our Slack app</a></h2> <a href="https://postmarkapp.com/slack-app"> <img src="https://craft-assets.postmarkapp.com/images/slack-status-notifications.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>You can now receive notifications through our Slack app each time we add or update an incident on our status page. Check out the <a href="https://postmarkapp.com/slack-app" target="_blank" rel="noreferrer noopener">Postmark Slack app page</a> for more details.</p></div> </div> </div> <div class="update update--cover" id="subscribe-to-status-alert-emails"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/subscribe-to-status-alert-emails" class="update_date">October 4, 2018</a> </div> <h2 class="update_title"><a href="https://status.postmarkapp.com">Subscribe to status alert emails</a></h2> <a href="https://status.postmarkapp.com"> <img src="https://craft-assets.postmarkapp.com/images/alert-email.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>You can now receive email alerts each time we add or update an incident on our status page. Head over to <a href="https://status.postmarkapp.com">the status page</a> to sign up.</p></div> </div> </div> <div class="update " id="developer-docs-no-longer-suck-on-mobile"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/mobile" class="update_type update_type--mobile">Mobile</a> <a href="https://postmarkapp.com/updates/developer-docs-no-longer-suck-on-mobile" class="update_date">October 2, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/developer">Developer docs much improved on mobile devices</a></h2> <div class="update_intro"><p>Yes, you're right, our <a href="https://postmarkapp.com/developer">developer docs</a> had a few issues on mobile. We're happy to say that, <em>finally</em>, that is a problem no more. Happy mobile browsing, everyone!</p></div> </div> </div> <h2 class="updates_date" id="august-2018"><a href="#august-2018">August, 2018</a></h2> <div class="update update--cover" id="postmark-ios-v1-1-0"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/mobile" class="update_type update_type--mobile">Mobile</a> <a href="https://postmarkapp.com/updates/postmark-ios-v1-1-0" class="update_date">August 28, 2018</a> </div> <h2 class="update_title"><a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.1.0Update&mt=8">Postmark for iOS v1.1.0</a></h2> <a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.1.0Update&mt=8"> <img src="https://craft-assets.postmarkapp.com/images/ios-app-v1.1.0%402x.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>Today we released an update to the <a href="https://postmarkapp.com/ios">Postmark iOS app</a>! This release includes:</p> <ul><li>A handy new split-view for iPad that makes it easier to switch between servers.</li><li>An updated servers screen to match the <a href="https://postmarkapp.com/blog/feature-announcement-a-brand-new-servers-page">new visual style in our web application</a>.</li><li>We fixed a bug that could cause the app to crash when searching for a message on the upcoming iOS 12.</li></ul><p><a href="https://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=v1.1.0Update&mt=8" target="_blank" rel="noreferrer noopener"><img src="/images/ios/app-store-button.svg" alt="Download Postmark on the App Store" width="137" height="46" title="Download Postmark on the App Store" /></a></p></div> </div> </div> <div class="update update--cover" id="template-improvements-phase-1-of-3"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/template-improvements-phase-1-of-3" class="update_date">August 16, 2018</a> </div> <h2 class="update_title">Template improvements: Phase 1 of 3</h2> <img src="https://craft-assets.postmarkapp.com/images/templates-2.png" alt="" class="update_cover"> <div class="update_intro"><p>Today we released some layout updates to our template pages. This first update focuses solely on quick wins at making it easier to manage more templates with longer naming conventions. It also sets the stage for our next updates in the pipeline like template searching and aliases.</p> <p>Keep an eye out for phase 2 and 3 changes in the coming weeks!</p></div> <a href="#" class="update_more-link" data-toggle="#template-improvements-phase-1-of-3">Show details</a> </div> <div class="update_body"> <ul><li><strong>List layout</strong> - We've heard from customers that it can be frustrating to use the card layout due to the way template names are truncated and it not playing nicely with their naming conventions. </li><li><strong>Card layout</strong> - The card layout is still there for customers that prefer a more visual approach to finding their template. The app also remembers their preference and sets it as their default view next time they visit the page. </li><li>15 templates per page instead of 9 </li><li>More breathing room when coding your templates! The template editor layout now expands with the page instead of being fixed at 820px. </li></ul> </div> </div> <div class="update update--cover" id="a-brand-new-servers-page"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/a-brand-new-servers-page" class="update_date">August 16, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-a-brand-new-servers-page">A brand new Servers page</a></h2> <a href="https://postmarkapp.com/blog/feature-announcement-a-brand-new-servers-page"> <img src="https://craft-assets.postmarkapp.com/images/servers-3.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>We’ve made tons of design improvements in the Postmark app over the past few months. From a <a href="https://postmarkapp.com/blog/feature-announcement-new-activity-feed">new activity feed</a>, to <a href="https://postmarkapp.com/blog/feature-announcement-a-better-dns-settings-page">a better DNS Settings page</a>, all the way through <a href="https://postmarkapp.com/blog/feature-announcement-modular-webhooks">a redesign of our webhook pages</a>, we set out to understand exactly what you need to do on those pages and flows, and design the best possible experience for those needs. </p> <p>Today, that philosophy gets extended to one of the most-used pages in the Postmark app: the Servers page. You’ve been asking us for a while to add features like search and better sorting options to that page, and today we’re happy to give you that, and much more.</p></div> </div> </div> <h2 class="updates_date" id="july-2018"><a href="#july-2018">July, 2018</a></h2> <div class="update " id="version-2-6-0-of-the-official-php-library-for-postmark"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/version-2-6-0-of-the-official-php-library-for-postmark" class="update_date">July 25, 2018</a> </div> <h2 class="update_title"><a href="https://github.com/activecampaign/postmark-php/releases/tag/2.6.0">Version 2.6.0 of the official PHP library for Postmark</a></h2> <div class="update_intro"><p>This release includes support for our new metadata feature. You may now include metadata with your outbound messages, and Postmark will include that data in webhook payloads, message details, and message searches. See the full <a href="https://postmarkapp.com/blog/feature-announcement-custom-metadata-for-your-emails">release announcement here</a>. </p> <p>This release also enables you to specify the BaseURL for each API request, making testing with Guzzle a lot easier. </p> <p>Finally, you can now enable, or disable SMTP API Error Webhooks for Servers using the Admin Client. </p> <p>As always, we hope this release helps you get even more value from Postmark, and please feel free to contact us if you have any questions or requests!</p></div> </div> </div> <div class="update " id="updates-to-the-swiftmailer-transport-for-postmark"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/updates-to-the-swiftmailer-transport-for-postmark" class="update_date">July 23, 2018</a> </div> <h2 class="update_title"><a href="https://packagist.org/packages/wildbit/swiftmailer-postmark">Updates to the Swiftmailer Transport for Postmark</a></h2> <div class="update_intro"><p>Our Swiftmailer Transport for Postmark has been updated with some minor enhancements, and it also now works with SwiftMailer 6.</p></div> </div> </div> <div class="update " id="postmark-official-net-client-updated-to-v3-3-0"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/postmark-official-net-client-updated-to-v3-3-0" class="update_date">July 23, 2018</a> </div> <h2 class="update_title"><a href="https://www.nuget.org/packages/Postmark/3.3.0">Postmark official .net client updated to v3.3.0</a></h2> <div class="update_intro"><p>This release of the official .net client for Postmark includes the addition of the Domains APIs, support for our new custom metadata feature, as well as the “EnableSMTPErrorHook” property to the the Create and Edit Server endpoint methods.</p></div> </div> </div> <div class="update " id="custom-metadata-for-your-emails"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/custom-metadata-for-your-emails" class="update_date">July 2, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-custom-metadata-for-your-emails">Custom metadata for your emails</a></h2> <div class="update_intro"><p>You can now add custom metadata to your emails, and we'll pass that same data back to your system through our webhooks.</p></div> <a href="#" class="update_more-link" data-toggle="#custom-metadata-for-your-emails">Show details</a> </div> <div class="update_body"> <p>For more details on how to implement and use this feature, check out the <a href="https://postmarkapp.com/blog/feature-announcement-custom-metadata-for-your-emails">announcement blog post</a>, <a href="https://postmarkapp.com/support/article/1125-custom-metadata-faq">help documentation</a> as well as our updated <a href="https://postmarkapp.com/developer">developer documentation</a>.</p> </div> </div> <h2 class="updates_date" id="june-2018"><a href="#june-2018">June, 2018</a></h2> <div class="update update--cover" id="improvements-to-invoices-payments-and-how-to-save-money"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/improvements-to-invoices-payments-and-how-to-save-money" class="update_date">June 28, 2018</a> </div> <h2 class="update_title">Improvements to invoices, payments, and how to save money</h2> <img src="https://craft-assets.postmarkapp.com/images/changelog_payments.png" alt="" class="update_cover"> <div class="update_intro"><p>We just finished work on a series of small updates to the app that work together to help you pick the pricing plan that's right for you, and make the whole "paying for Postmark" thing a lot more pleasant. Below is an overview of the changes.</p></div> <a href="#" class="update_more-link" data-toggle="#improvements-to-invoices-payments-and-how-to-save-money">Show details</a> </div> <div class="update_body"> <h3>Updates to monthly usage indicator</h3> <p>Instead of a gauge that shows that you're "in the red" as soon as you hit your monthly limit, we now have a much better indicator with three states:</p> <ul><li>Sending within your monthly limit </li><li>Sending exceeds your monthly limit, but you're still on the best plan </li><li>Sending exceeds your monthly limit, and upgrading to a new plan would save you money </li></ul> <p>This will clear up a lot of the confusion about where you're at with your usage.</p> <h3>Improved overage messaging on plans page</h3> <p>We've improved the messaging we show when it would be beneficial to you to upgrade.</p> <figure><img src="https://craft-assets.postmarkapp.com/blog/Overages-Upgrade.png"></figure> <h3>Improved invoice emails</h3> <p>Our billing emails used to be text, and they're now beautiful HTML templates. We now also tell you if you can save money by upgrading to the next plan.</p> <h3>Add pricing calculator to the app (for new users)</h3> <p>New users will now see the pricing calculator in the app, so they don't have to leave the app and go to the <a href="https://postmarkapp.com/pricing">marketing site</a> to do the calculation.</p> </div> </div> <div class="update " id="improvements-to-rebounds-javascript-api"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/labs" class="update_type update_type--labs">Labs</a> <a href="https://postmarkapp.com/updates/improvements-to-rebounds-javascript-api" class="update_date">June 27, 2018</a> </div> <h2 class="update_title">Latest improvements to Rebound’s Javascript API</h2> <div class="update_intro"><p>Rebound's Javascript API now includes a couple of new features that make it easier to use for email-crucial workflows and single-page apps. We’ve introduced a new method(<em>window.Rebound.check()</em>) for explicitly checking an email address whenever you want instead of only on page load. We’ve also introduced an option to continuously run checks in the background without requiring users to reload the page.</p></div> <a href="#" class="update_more-link" data-toggle="#improvements-to-rebounds-javascript-api">Show details</a> </div> <div class="update_body"> <p><strong>Repeat config option</strong></p> <p>To continuously check an email address, add the <em>repeat</em> option to the config object. <em>repeat</em> accepts any number above <em>5000</em> milliseconds. We recommend using it sparingly for workflows crucial to email such as account activation or password reset pages.</p> <p><br></p> <p><strong>window.Rebound.check(config)</strong><br></p> <p>This method accepts the standard config object as the first argument. This is ideal for letting your customers know about delivery issues based on an action they took in your app. Take a look at our <a href="https://codepen.io/derekrushforth/pen/VxONKe" target="_blank" class="attrlink" data-target-href="https://codepen.io/derekrushforth/pen/VxONKe" rel="noreferrer nofollow noopener">CodePen example</a> and learn how to check an email address when a form is submitted using Javascript.</p> <p>Check out <a href="https://rebound.postmarkapp.com/api">Rebound’s API docs</a> for more details.<br></p> </div> </div> <div class="update " id="bug-fixes-and-small-improvements-april-may-2018"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <span class="update_bug-fix">Bug Fix</span> <a href="https://postmarkapp.com/updates/bug-fixes-and-small-improvements-april-may-2018" class="update_date">June 18, 2018</a> </div> <h2 class="update_title">Bug fixes and small improvements - April/May 2018</h2> <div class="update_intro"><p>We're constantly improving Postmark and taking care of small issues and annoyances that we find (or you send us!). We wanted to start telling you about these fixes, so from now on we'll update you every few months about the bug fixes and other small tasks we take care of in between our larger feature projects. </p></div> <a href="#" class="update_more-link" data-toggle="#bug-fixes-and-small-improvements-april-may-2018">Show details</a> </div> <div class="update_body"> <p>Here's a brief overview of all the bug fixes and small changes we completed in April and May of this year:</p> <ul><li>We now enforce Do Not Track headers! See our <a href="https://postmarkapp.com/blog/enforcing-user-do-not-track-preferences">announcement post</a>.</li><li>If you follow a deep link to a part of our UI (for example, in an email you receive), you will now be taken directly to that URL once you've logged in, instead of the Servers page.</li><li>When you send an email to a distribution list, and one of the recipients in that list results in a hard bounce, we will no longer deactivate the whole distribution list. Instead, we now mark this is a soft bounce so that you can investigate which email bounced, without the entire list being affected.</li><li>We added "Processed" as an alias for "Sent" in the Messages API, to match our <a href="https://postmarkapp.com/blog/feature-announcement-new-activity-feed">recent UI changes</a>.</li><li>Our login, password recovery, and 2-factor authentication pages are now mobile-friendly.</li><li>We improved some button labels in the UI to make initial setup clearer.</li><li>Other bug fixes:<ul><li>If your address is inactive and you try to trigger a password rest, nothing happened and no error was shown to you. We now show an appropriate error message.</li><li>We fixed an incorrect error message that was shown if you didn't specify a template model when sending email.</li><li>In some cases the plain text preview of your emails ran off the page on the Message Details page in the Postmark UI.</li><li>Our pricing calculator broke when commas were used as thousands separators.</li><li>We fixed an issue where Webhook URLs sometimes failed validation tests when they weren't supposed to.</li><li>The password strength indicator on our sign-up page wasn't working.</li></ul></li></ul><p><br></p> </div> </div> <h2 class="updates_date" id="may-2018"><a href="#may-2018">May, 2018</a></h2> <div class="update update--cover" id="introducing-postmark-for-ios"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/mobile" class="update_type update_type--mobile">Mobile</a> <a href="https://postmarkapp.com/updates/introducing-postmark-for-ios" class="update_date">May 29, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/ios">Postmark for iOS Launched</a></h2> <a href="https://postmarkapp.com/ios"> <img src="https://craft-assets.postmarkapp.com/images/ios-blog-post-3.jpg" alt="" class="update_cover"> </a> <div class="update_intro"><p>Email is a critical component of most web applications, and we know how important it is to have tools to investigate and resolve any delivery issues quickly. The <a href="http://itunes.apple.com/app/apple-store/id1333183992?pt=209155&ct=LaunchBlogPost&mt=8" target="_blank" rel="noreferrer noopener">Postmark iOS app</a> allows you to take our powerful email monitoring and troubleshooting tools with you wherever you go.</p></div> </div> </div> <div class="update " id="do-not-track-enforcement"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/do-not-track-enforcement" class="update_date">May 29, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/enforcing-user-do-not-track-preferences">We started enforcing Do Not Track preferences</a></h2> <div class="update_intro"><p>We now disable all the third-party scripts that collect data about users visiting our website if the user has Do Not Track enabled. This includes analytics and A/B testing services, as well as less obvious data collectors like live chat.</p></div> </div> </div> <div class="update " id="notify-your-customers-about-email-delivery-issues-with-rebound"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/labs" class="update_type update_type--labs">Labs</a> <a href="https://postmarkapp.com/updates/notify-your-customers-about-email-delivery-issues-with-rebound" class="update_date">May 7, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/rebound">Notify your customers about email delivery issues with rebound</a></h2> <div class="update_intro"><p>Rebound prompts your customers to update their email address if an email you sent them hard bounced.</p></div> </div> </div> <h2 class="updates_date" id="march-2018"><a href="#march-2018">March, 2018</a></h2> <div class="update update--cover" id="modular-webhooks"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/modular-webhooks" class="update_date">March 26, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-modular-webhooks">Modular webhooks</a></h2> <a href="https://postmarkapp.com/blog/feature-announcement-modular-webhooks"> <img src="https://craft-assets.postmarkapp.com/images/changelog_modular_webhooks.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>You can now add multiple webhook URLs for a server and choose which events you’d like to send to each specified URL.</p></div> </div> </div> <h2 class="updates_date" id="january-2018"><a href="#january-2018">January, 2018</a></h2> <div class="update update--cover" id="sender-signature-search"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/sender-signature-search" class="update_date">January 31, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-sender-signature-search">Sender signature search</a></h2> <a href="https://postmarkapp.com/blog/feature-announcement-sender-signature-search"> <img src="https://craft-assets.postmarkapp.com/images/changelog_sender_signature_search.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>This one has been a long time coming… Today we’re happy to announce that you can now — yes, <em>finally</em> — perform searches on the sender signatures page. No more going all the way to page 594 (yes, some accounts really have that many sender signatures!) to find that one elusive one you’re looking for.</p></div> </div> </div> <div class="update update--cover" id="introducing-the-official-postmark-slack-app"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/labs" class="update_type update_type--labs">Labs</a> <a href="https://postmarkapp.com/updates/introducing-the-official-postmark-slack-app" class="update_date">January 24, 2018</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/the-official-postmark-slack-app">Introducing the official Postmark Slack app</a></h2> <a href="https://postmarkapp.com/blog/the-official-postmark-slack-app"> <img src="https://craft-assets.postmarkapp.com/images/changelog_slack_app.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>Send Bounce notification messages from Postmark to a Slack channel of your choice. Each notification also provides a direct link to the Message Details page so that you can investigate further.</p></div> </div> </div> <h2 class="updates_date" id="december-2017"><a href="#december-2017">December, 2017</a></h2> <div class="update " id="announcing-lower-pricing-and-monthly-plans"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/company" class="update_type update_type--company">Company</a> <a href="https://postmarkapp.com/updates/announcing-lower-pricing-and-monthly-plans" class="update_date">December 19, 2017</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/announcing-lower-pricing-and-monthly-plans">New lower pricing and monthly plans</a></h2> <div class="update_intro"><p>Postmark now offers monthly plans instead of credits, and the new plans will likely save you money. Here's everything you should know about Postmark's new pricing model. </p></div> </div> </div> <h2 class="updates_date" id="november-2017"><a href="#november-2017">November, 2017</a></h2> <div class="update update--cover" id="a-better-dns-settings-page"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/a-better-dns-settings-page" class="update_date">November 13, 2017</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-a-better-dns-settings-page">A better DNS settings page</a></h2> <a href="https://postmarkapp.com/blog/feature-announcement-a-better-dns-settings-page"> <img src="https://craft-assets.postmarkapp.com/images/changelog_dns_settings.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>We release a simplified DNS Settings page to make it easier to ensure great delivery for your email. But we didn’t stop there — we also made some backend changes to streamline how we authenticate domains for email sending. Let’s go through some of those changes.</p></div> </div> </div> <div class="update " id="two-factor-authentication-now-available"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/two-factor-authentication-now-available" class="update_date">November 13, 2017</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-two-factor-authentication">Two-factor authentication now available</a></h2> <div class="update_intro"><p>Hot off the heels of releasing advanced user roles and permissions, today we’re giving you a way to add extra security to your account by enabling two-factor authentication (2FA).</p></div> </div> </div> <div class="update update--cover" id="advanced-permissions-and-redesigned-user-management"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/advanced-permissions-and-redesigned-user-management" class="update_date">November 13, 2017</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-advanced-permissions">Advanced permissions and redesigned user management</a></h2> <a href="https://postmarkapp.com/blog/feature-announcement-advanced-permissions"> <img src="https://craft-assets.postmarkapp.com/images/changelog_advanced_permissions.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>For the longest time we’ve only had two types of accounts: a single <em>Account Owner</em>, and separate <em>Viewers</em>. Viewers are only able to view reports, email activity, and receive email digests for the servers they are assigned to. So, today, we’re adding two new roles to Postmark: <em>Account Admins</em> and <em>Server Admins</em>. </p> <p> </p></div> </div> </div> <div class="update " id="emoji-in-subject-lines-now-available"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/emoji-in-subject-lines-now-available" class="update_date">November 13, 2017</a> </div> <h2 class="update_title">Emoji in subject lines now available</h2> <div class="update_intro"><p>You can now add emoji to your Postmark subject lines, and they’ll render correctly in your favorite email clients. Of course, emoji are already supported in the message body, so there are no changes there.</p></div> </div> </div> <div class="update update--cover" id="updates-to-the-activity-feed"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/web" class="update_type update_type--web">Web</a> <a href="https://postmarkapp.com/updates/updates-to-the-activity-feed" class="update_date">November 13, 2017</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-new-activity-feed">Updates to the activity feed</a></h2> <a href="https://postmarkapp.com/blog/feature-announcement-new-activity-feed"> <img src="https://craft-assets.postmarkapp.com/images/changelog_activity_feed.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>We released some significant updates to the activity feed to increase information density and clarity, upgrade the filtering experience, and add the ability to export the activity feed to a CSV.</p></div> </div> </div> <h2 class="updates_date" id="august-2017"><a href="#august-2017">August, 2017</a></h2> <div class="update update--cover" id="huge-updates-to-the-support-home-page"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/company" class="update_type update_type--company">Company</a> <a href="https://postmarkapp.com/updates/huge-updates-to-the-support-home-page" class="update_date">August 22, 2017</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/get-answers-faster-and-easier-than-ever">Huge updates to the support home page</a></h2> <a href="https://postmarkapp.com/blog/get-answers-faster-and-easier-than-ever"> <img src="https://craft-assets.postmarkapp.com/images/changelog_support_page.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>We’ve really expanded our documentation. More guides, help docs, blog posts, open source projects, and developer docs. Unfortunately, that proliferation led to fragmentation. So we set aside time to unify all of our documentation into a single home and make it all searchable.</p></div> </div> </div> <h2 class="updates_date" id="may-2017"><a href="#may-2017">May, 2017</a></h2> <div class="update update--cover" id="updates-to-dmarc-reports"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/labs" class="update_type update_type--labs">Labs</a> <a href="https://postmarkapp.com/updates/updates-to-dmarc-reports" class="update_date">May 7, 2017</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/dmarc-reports-are-now-way-more-useful">Updates to DMARC reports</a></h2> <a href="https://postmarkapp.com/blog/dmarc-reports-are-now-way-more-useful"> <img src="https://craft-assets.postmarkapp.com/images/changelog_dmarc_reports.png" alt="" class="update_cover"> </a> <div class="update_intro"><p>We decided to take our DMARC reports a step further. Instead of just showing you synthesized DMARC information, we now include helpful tips on how to address each of the possible issues you might see on the IP addresses that are sending on your behalf.</p></div> </div> </div> <h2 class="updates_date" id="december-2016"><a href="#december-2016">December, 2016</a></h2> <div class="update " id="webhook-for-delivery-events"> <div class="update_header"> <div class="update_meta"> <a href="https://postmarkapp.com/updates/type/api" class="update_type update_type--api">API</a> <a href="https://postmarkapp.com/updates/webhook-for-delivery-events" class="update_date">December 5, 2016</a> </div> <h2 class="update_title"><a href="https://postmarkapp.com/blog/feature-announcement-webhook-for-delivery-events">Webhook for delivery events</a></h2> <div class="update_intro"><p>Postmark can now notify your application of delivery events via webhooks so you can do a variety of things like feed delivery events into an internal system, provide delivery even notifications to your customers, or aggregate delivery even data to see patterns and respond accordingly.</p></div> </div> </div> </div> </div> </div> <footer class="footer "> <div class="u-container footer_container"> <nav class="nav nav--footer " role="navigation" aria-label="Footer"> <div class="nav_group"> <h4 class="nav_heading">Product</h4> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/pricing" class="nav_link">Pricing</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/customers" class="nav_link">Customers</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/reviews" class="nav_link">Reviews</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/dedicated-ips" class="nav_link">Dedicated IPs</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/ios" class="nav_link">iOS App</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/lp/referral-partner-program" class="nav_link">Referral Partner Program</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/updates" class="nav_link nav_link--updates" data-latest-update="1731514860">Latest Updates</a> </li> </ul> </div> <div class="nav_group"> <h4 class="nav_heading">Features</h4> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/email-api" class="nav_link">Email API</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/smtp-service" class="nav_link">SMTP Service</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/message-streams" class="nav_link">Message Streams</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/transactional-email" class="nav_link">Transactional Email</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/email-delivery" class="nav_link">Email Delivery</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/email-templates" class="nav_link">Templates</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/inbound-email" class="nav_link">Inbound Email</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/email-analytics" class="nav_link">Analytics & Retention</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/integrations" class="nav_link">Integrations</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/email-webhooks" class="nav_link">Webhooks</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/security" class="nav_link">Security</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/email-experts" class="nav_link">Email Experts</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/rebound" class="nav_link">Rebound</a> </li> </ul> </div> <div class="nav_group"> <h4 class="nav_heading">Postmark For</h4> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/for/agencies" class="nav_link">Agencies</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/for/startups" class="nav_link">Startups</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/for/enterprise" class="nav_link">Enterprise</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/for/bootstrapped-startups" class="nav_link">Bootstrapped Startups</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/for/side-projects" class="nav_link">Side Projects</a> </li> <li class="nav_item"> <a href="/send-email" class="nav_link">Developers</a> </li> </ul> <h4 class="nav_heading">Postmark vs.</h4> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/compare/sendgrid-alternative" title="Compare Postmark to SendGrid" class="nav_link">SendGrid</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/compare/sparkpost-alternative" title="Compare Postmark to SparkPost" class="nav_link">SparkPost</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/compare/mailgun-alternative" title="Compare Postmark to Mailgun" class="nav_link">Mailgun</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/compare/amazon-ses-alternative" title="Compare Postmark to Amazon SES" class="nav_link">Amazon SES</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/compare/mandrill-alternative" title="Compare Postmark to Mandrill" class="nav_link">Mandrill</a> </li> </ul> </div> <div class="nav_group"> <h4 class="nav_heading">Resources</h4> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/blog" class="nav_link">Blog</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/developer" class="nav_link">API Documentation</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/manual" class="nav_link">Getting Started</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/guides" class="nav_link">Email Guides</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/postmark-express" class="nav_link">Email Comic</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/videos" class="nav_link">Videos</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/podcast" class="nav_link">Podcast</a> </li> <li class="nav_item"> <a href="https://dmarcdigests.com" target="_blank" rel="noopener" class="nav_link">DMARC Digests</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/webinars" class="nav_link">Webinars</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/labs" class="nav_link">Labs</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/migration-guides" class="nav_link">Migration Guides</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/newsletter" class="nav_link">Newsletter</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/glossary" class="nav_link">Glossary</a> </li> </ul> </div> <div class="nav_group"> <h4 class="nav_heading">Help</h4> <ul class="nav_list"> <li class="nav_item"> <a href="https://postmarkapp.com/support" class="nav_link">Support Center</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/contact" class="nav_link">Contact Support</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/talk-to-sales" class="nav_link">Talk to Sales</a> </li> <li class="nav_item"> <a href="https://status.postmarkapp.com" target="_blank" rel="noopener noreferrer" class="nav_link">Service Status</a> </li> </ul> <h4 class="nav_heading">Visit ActiveCampaign for:</h4> <ul class="nav_list"> <li class="nav_item"> <a href="https://www.activecampaign.com/marketing-automation?utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=postmark_footer_nav" target="_blank" rel="noopener" class="nav_link">Marketing Automation</a> </li> <li class="nav_item"> <a href="https://www.activecampaign.com/sales-crm?utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=postmark_footer_nav" target="_blank" rel="noopener" class="nav_link">CRM & Sales Automation</a> </li> <li class="nav_item"> <a href="https://www.activecampaign.com/omnichannel/landing-pages?utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=postmark_footer_nav" target="_blank" rel="noopener" class="nav_link">Landing Pages</a> </li> <li class="nav_item"> <a href="https://www.activecampaign.com/omnichannel/sms-marketing?utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=postmark_footer_nav" target="_blank" rel="noopener" class="nav_link">SMS Automation</a> </li> </ul> </div> </nav> <div class="u-grid u-grid--full u-grid--1of3-at-large footer_lower"> <div class="u-grid-cell"> <div class="footer_ac"> Made with <span class="footer_love">♥</span> at <a href="https://www.activecampaign.com?utm_source=postmark&utm_medium=referral&utm_campaign=postmark_web&utm_content=postmark_footer" class="footer_ac-logo" target="_blank" rel="noopener">ActiveCampaign</a></a> </div> </div> <div class="u-grid-cell u-grid-cell--2of3"> <div class="nav nav--legal"> <ul class="nav_list nav_list--legal"> <li class="nav_item"> <a href="https://postmarkapp.com/privacy-policy" class="nav_link">Privacy Policy</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/cookie-policy" class="nav_link">Cookie Policy</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/terms-of-service" class="nav_link">Terms of Service</a> </li> <li class="nav_item"> <a href="https://postmarkapp.com/eu-privacy" class="nav_link">EU Data Protection</a> </li> <li class="nav_item">© ActiveCampaign, <abbr>LLC</abbr>, 2024.</li> </ul> </div> </div> </div> </div> </footer> <button class="fake-hs-beacon hidden js-load-beacon"> <span class="fake-hs-beacon_icon"></span> <span class="fake-hs-beacon_text">Help</span> </button> <script src="https://postmarkapp.com/dist/js/landing.62373c57e4385a5bc6b5.js"></script> <script type="text/javascript"> window['GoogleAnalyticsObject'] = 'ga'; window['ga'] = window['ga'] || function() { (window['ga'].q = window['ga'].q || []).push(arguments) }; </script> <!-- Google Tag Manager --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-PWV3TKM" width="0" height="0" style="display:none; visibility:hidden"></iframe></noscript> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-PWV3TKM');</script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "url": "https://postmarkapp.com", "logo": "https://postmarkapp.com/images/logo-stamp-social.png", "name": "Postmark", "founder": [ { "@type": "Person", "name": "Jason VandeBoom", "jobTitle": "CEO" } ], "foundingLocation": { "@type": "Place", "address": { "@type": "PostalAddress", "streetAddress": "1 North Dearborn St, 5th Floor", "addressLocality": "Chicago", "addressRegion": "IL", "postalCode": "60602", "addressCountry": "US" } }, "location": { "@type": "Place", "address": { "@type": "PostalAddress", "streetAddress": "1 North Dearborn St, 5th Floor", "addressLocality": "Chicago", "addressRegion": "IL", "postalCode": "60602", "addressCountry": "US" } }, "sameAs": [ "https://twitter.com/postmarkapp" ] } </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "name": "Postmark", "url": "https://postmarkapp.com" } </script> </body> </html>