ActiveCampaign Postmark for WordPress


If you’re still sending email with default SMTP, you’re blind to delivery problems! ActiveCampaign Postmark for WordPress enables sites of any size to deliver and track WordPress notification emails reliably, with minimal setup time and zero maintenance.

If you don’t already have an ActiveCampaign Postmark account, you can get one in minutes, sign up at

Check out our video on how to set up the ActiveCampaign Postmark for WordPress plugin here.

Additional Resources

ActiveCampaign Postmark for WordPress FAQ

Can I use the ActiveCampaign Postmark for WordPress plugin with Gravity Forms?

How do I send with Ninja Forms and ActiveCampaign Postmark for WordPress?

How do I send with Contact Form 7 and ActiveCampaign Postmark for WordPress?

Can I use the ActiveCampaign Postmark for WordPress plugin with Divi contact forms?


  • ActiveCampaign Postmark WP Plugin Settings screen.


  1. Upload postmark directory to your /wp-content/plugins directory
  2. Activate plugin in WordPress admin
  3. In WordPress admin, go to Settings then Postmark. You will then want to insert your Postmark details. If you don’t already have a Postmark account, get one at
  4. Verify sending by entering a recipient email address you have access to and pressing the “Send Test Email” button.
  5. Once verified, then check “Enable” to override wp_mail and send using the Postmark API instead.


What is ActiveCampaign Postmark?

ActiveCampaign Postmark is a hosted service that expertly handles all delivery of transactional webapp and web site email. This includes welcome emails, password resets, comment notifications, and more. If you’ve ever installed WordPress and had issues with PHP’s mail() function not working right, or your WordPress install sends comment notifications or password resets to spam, Postmark makes all of these problems vanish in seconds. Without Postmark, you may not even know you’re having delivery problems. Find out in seconds by installing and configuring this plugin.

Will this plugin work with my WordPress site?

The ActiveCampaign Postmark for WordPress plugin overrides any usage of the wp_mail() function. Because of this, if any 3rd party code or plugins send mail directly using the PHP mail function, or any other method, we cannot override it. Please contact the makers of any offending plugins and let them know that they should use wp_mail() instead of unsupported mailing functions.

TLS Version Requirements/Compatibility

The ActiveCampaign Postmark API requires TLS v1.1 or v1.2 support. We recommend using TLS v1.2.

You can check your TLS v1.2 compatibility using this plugin. After installing the plugin, change the dropdown for ‘Select API Endpoint’ to How’s My SSL? and run the test. If compatibility with TLS v1.2 is not detected, contact your server host or make the necessary upgrades to support TLS v1.1 or v1.2.

TLS 1.2 requires:

  • PHP 5.5.19 or higher
  • cURL 7.34.0 or higher
  • OpenSSL 1.0.1 or higher

Does this cost me money?

The ActiveCampaign Postmark service (and this plugin) are free to get started. You can sign up at When you need to process more email, ActiveCampaign Postmark offers monthly plans to fit your needs.

My emails are still not sending, or they are going to spam! HELP!?

No worries, our expert team can help. Just send an email to or tweet @postmarkapp for help. Be sure to include as much detail as possible.

Why should I trust you with my email sending?

Because we’ve been in this business for many years. We’ve been running an email marketing service, Newsberry, for five years. Through trial and error we already know what it takes to manage a large volume of email. We handle things like whitelisting, ISP throttling, reverse DNS, feedback loops, content scanning, and delivery monitoring to ensure your emails get to the inbox.

Most importantly, a great product requires great support and even better education. Our team is spread out across six time zones to offer fast support on everything from using Postmark to best practices on content and user engagement. A solid infrastructure only goes so far, that’s why improving our customer’s sending practices helps achieve incredible results

Why aren’t my HTML emails being sent?

This plugin detects HTML by checking the headers sent by other WordPress plugins. If a “text/html” content type isn’t set then this plugin won’t send the HTML to Postmark to be sent out only the plain text version of the email.

How do I set environment specific Postmark plugin settings?

You can optionally set the Postmark API Token, message stream, and default sending address by adding the following to your wp-config.php file:


define( ‘POSTMARK_API_KEY’, ” );
define( ‘POSTMARK_STREAM_NAME’, ‘stream-name’ );

Setting any of these here will override what is set via the plugin’s UI.

Why are password reset links not showing in emails sent with this plugin?

There are a couple ways to resolve this issue.

  1. Open the Postmark plugin settings and uncheck Force HTML and click Save Changes. If the default WordPress password reset email is sent in Plain Text format, the link will render as expected.

  2. Access your WordPress site directory and open the wp-login.php file.

Change this line:

    $message .= ‘<‘ . network_site_url(“wp-login.php?action=rp&key=$key&login=” . rawurlencode($user_login), ‘login’) . “>\r\n”;

Remove the brackets, so it becomes:

    $message .= network_site_url(“wp-login.php?action=rp&key=$key&login=” . rawurlencode($user_login), ‘login’) . “\r\n”;

And save the changes to the file.

How do I set the from name?

The plugin supports using the wp_mail_from_name filter for manually setting a name in the From header.


21 Janaayo, 2022
Months after flagging with Postmark, this plugin is still useless. It's pot luck if the option will appear under Settings. Have tried on multiple different environments and almost every time it doesn't appear.
22 Oktoobar, 2021
I am a developer but I interact with a lot of people who can't be bothered by dev things. The Postmark service seems robust, but as far as WordPress is concerned, I find people like it when they can easily do the one "magic" thing they expect it to. Punching some stuff in a field, and having nice short stubby screens to fill out essentially one time? That's super client friendly. Even doing the DNS is quick and zippy and it's all laid out nice. It delivers, and fast, but one of the things that blew my mind was the support. Every day I see more and more companies resorting to third-party entities to handle customer service, even if they didn't use to. Often the bigger companies go with the cheapest option, which isn't thinking in the long term because even though everyone's speaking or writing English, nothing is being understood. I hadn't even bought anything and had a question about something, and I got an email back in an hour with no form-letter crap, clearly tailored to what I had asked and the way I asked it. Couple paragraphs, well-written -- and with no attitude even though the entire time I had whiffed on noticing that their site had the answer in one of their equally-nice educational articles the whole time. I know the support isn't on the repository, just the code, but I am sharing it not for sunshine's sake but because email is a huge deal for people and the idea that you have a safety net might be useful for people considering. Happy to edit the review to kill the language if that's inappropriate.
5 Nofeembar, 2020
The wordpress plugin is not compatible with any wordpress version, as I used the latest one and the old one on both no plugin settings shown at backend. Test your plugin with all wordpress versions before writing tested upto 5.5.3 version. Worst plugin | Compatibility Issues
Akhri dhammaan 24 dibu-eegis

Ka-qaybgalayaasha & Horumariyayaasha

“ActiveCampaign Postmark for WordPress” waa softiweer il furan. Dadka soo socda ayaa wax ku biiriyay kaabahan.




  • ActiveCampaign branding update.


  • Do wp_mail_succeeded action after successful sends (introduced in WordPress v5.9).


  • Honour pre_wp_mail filters.


  • Fix notice when overriding force_from setting.


  • Ensure Postmark plugin is loaded before attempting to load settings from it after upgrading.


  • Use correct admin.js file version.


  • Bugfix for using Force From setting.


  • Adds new Force From setting to allow preventing override of From address using headers, if desired.


  • Adds ability to override settings for environment specific Postmark plugin settings.


  • Fix limit of 500 sending logs deleted per day.


  • Even better handling of apostrophes in email address From names.


  • Handle apostrophes in email address From names. These are sometimes used in site titles, which can be the default From address name with other plugins.


  • Handle special characters in site titles for test emails.


  • Additional bugfix for using wp_mail_from_name filter.


  • Fixes error when upgrading by ensuring $postmark is set before trying to load settings.


  • Fixes error from using incorrect filter name and mailparse_rfc822_parse_addresses function.


  • Adds support for using the wp_mail_from_name filter to specify a from_name when sending.


  • Fixes ‘POSTMARK_DIR is undefined’ warning when upgrading other plugins via the CLI.


  • Fixes potential collation mismatch errors from date comparisons during old sending logs deletion.


  • Uses count() for check of logs query result count.


  • Corrects SQL for deletion of log entries older than 7 days.


  • Checks if stream_name is set in settings before determining which stream to use.


  • Adds support for message streams.


  • Updates server API token location hint in plugin settings.


  • Allows using POSTMARK_API_TEST in the plugin settings for generating test send requests that aren’t actually delivered.


  • Fixes handling of situation where call to Postmark API results in WP_Error instead of array for response, such as during incidents of the API being offline and not returning a response.


  • Fixes log page display of From/To addresses including the From/To names. Only email addresses will now appear in logs page, to avoid confusion, while also preserving the sanitation of email addresses before inserting into db.


  • Fixes no index error with track links check in wp_mail.


  • Fixes call of non-global load_settings function during upgrade.


  • Adds link tracking support.
  • Fixes send test with HTML/open tracking option not being honored in sent test email.


  • Fixes undefined index error.
  • Adds Upgrade Notice


  • Corrects logs deletion cron job unscheduling issue.


  • Removes index on logs table.


  • Corrects version mismatch in constructor.


  • Adds a new logging feature that can be enabled to store logs for send attempts. Logs include Date, From address, To address, Subject, and Postmark API response. Logs are displayed in a Logs tab in the plugin setting once enabled.
  • Switch loading of JS/CSS to use enqueue()


  • Resolves issue when saving settings in UI.
  • Falls attachment Content-Type back to ‘application/octet-stream’ when other methods fail.


  • Update javascript to fix settings update issue.


  • Added postmark_error and postmark_response actions to the plugin, to intercept API results after calling wp_mail. You can register callbacks for these using add_action (more info here:


  • Interface cleanup
  • Minor code restructuring


  • Make the errors available in the PHP variable Postmark_Mail::$LAST_ERROR if wp_mail() returns false, examine this variable to find out what happened.
  • When doing a test send, if an error occurs, it will be printed in the settings page header.


  • Fix case where ‘From’ header is specified as a literal string, instead of in an associative array.


  • Allow the ‘From’ header to override the default sender.
  • Don’t send TextBody when the user has specified the ‘Content-Type’ header of ‘text/html’
  • Allow individual messages to opt-in to Track-Opens by including a header of ‘X-PM-Track-Opens’ and a value of true


  • Modernization of codebase.


  • Support headers for cc, bcc, and reply-to


  • Added open tracking support.


  • Fix issue with new WordPress HTTP API Integration.


  • New option to force emails to be sent as HTML. Previously just detected Content-Type.
  • Now uses the WordPress HTTP API.


  • Resolved error with handing arrays of recipients


  • Arrays of recipients are now properly handled
  • HTML emails and Text Emails are now handled by checking the headers of the emails sent, and sends via Postmark appropriately.
  • Optional “Powered by Postmark” footer of sent emails. “Postmark solves your WordPress email problems. Send transactional email confidently using”
  • Add license to README and PHP file


  • First Public release.