You’re probably already familiar with WordPress, which serves one in every four websites run by an identifiable CMS. This number is unbelievably exciting. I’m excited that I get to write about an integration that we’ve written with our users in the last year. Yes, you correctly assumed that I’m going to talk about the SparkPost WordPress plugin for this tremendously popular CMS.

What’s A WordPress Plugin?

Before diving into details about our particular plugin, here is a quick intro to what a WordPress plugin actually is!

WordPress is a very flexible content management system which programmers can extend in order to add or modify core functionalities. According to

Plugins are ways to extend and add to the functionality that already exists in WordPress.

The core of WordPress is designed to be lean and lightweight, to maximize flexibility and minimize code bloat. Plugins then offer custom functions and features so that each user can tailor their site to their specific needs.

Extending functionalities via plugins is a more maintainable process because it can be done without modifying core source codes. WordPress also has a central plugin repository where anyone can publish their plugins, making them accessible worldwide.

What Is SparkPost’s WordPress Plugin?

SparkPost’s plugin for WordPress is a very lightweight extension developed by utilizing the plugin API of the WordPress core. The plugin magically augments the wp_mail function which changes the default email sending behavior of WordPress and routes all outgoing emails through SparkPost’s platform. The plugin supports sending email over both SMTP and RESTful API (referred to as HTTP Mailer in plugin).

Some facts and figures about this plugin:

  • It has over 17,000 downloads.
  • Since its initial release, we’ve made 2 major releases and multiple minor releases.
  • It has a 5 star rating.
  • Plugin’s issue tracker on Github has 51 closed and 5 open issues.
  • There are 7 developers that have contributed to the codebase.

Why A Separate Plugin?

Wondering why we created a separate plugin while any existing SMTP plugin could be configured to send through SparkPost, the answer is because of our API. Our API stands out in terms of flexibility, performance and ease of use.

We’ve also seen that a significant number of users struggle using SMTP, as the outgoing port 587 is blocked by firewall in many, particularly shared, hosts. Even the alternative port 2525 is blocked in many cases.

On the other hand, RESTful API works on port 443 which is extremely unlikely to be blocked by firewall. It is often preferred because it has some interesting advantages over SMTP including better concurrency and a modern developer-centric interface. It also has some important features that are not available in SMTP, such as templates.

In addition, we wanted to learn about the use cases of our customers and streamline their experience effectively rather than waiting for a 3rd party author.

How To Use It

Installation and usage of this plugin is pretty simple and similar to most of the plugins. However, if you are looking for detailed instructions, head to the documentation on the official plugin repo.

How We Maintain It

User feedback is the core driving factor of our product and support tools. We pay close attention to all the different ways that our customers can talk to us, including our Github repo, WordPress support forum, and community Slack channel (#wordpress).

Upon receiving any feedback, we log it in our official issue tracker on Github. Then we triage it and see what kind of issue it is. If it’s a bug or integration issue, we try to triage it immediately and understand the severity. Often times we ask for more information from the reporting user(s). After receiving all of the data, we allocate resources to handle the issue and release a patch version with the fix. In some cases, our developer community submits pull requests, which we review and merge.

With feature requests, we either implement them in the plugin or provide a solution to the specific user. Feature requests that apply to a majority of the users go directly into the plugin. Unique use cases are easily solved by plugin hooks. Since we started supporting hooks (in v2.5.0) in the plugin, it has been extremely easy to address such specific use cases.

How To Contribute

If you’re reading this section, it means you want to help us. This is great! Your contributions and feedback help enhance the experience of the entire community.

There are multiple ways to contribute, even if you’re not a programmer. A few ways to help include:

  • Reporting bugs and/or missing features.
  • Reproducing a specific bug.
  • Testing the plugin along with other plugins and report back if they don’t live in harmony.
  • Helping our users on support channels (mentioned above).
  • Issuing a pull request for a known bug.
  • Reviewing an open pull request and testing before we make a new release.

Finally, I want to thank all of our community members who have used and contributed to this plugin. Without your help it wouldn’t be where it is today. If you use WordPress, give our SparkPost WordPress plugin a try. And don’t hesitate to reach out to us with your feedback via Slack or the WordPress forums.


Ps: You can see more from Mohammad at TheHungryCoder