Reading Time: 7 minutes

After a bit of a greedy upsell, I dropped Automattic’s Jetpack plugin. One feature I was noodling on was the post follower option. Jetpack offers the ability for people to follow new posts from within a WordPress app as well as by email. This is how I resolved that need so I could finally uninstall Jetpack.

The first thing to note is that this is not the easiest way to solve this problem. If you want to send out emails to a group of people, using a mailer can be the simplest path. Services like Mailchimp and Hubspot have free levels. You are limited in how many emails you can send and each email will have the sender’s branding in the footer. You can also pay either of those platforms or other paid platforms like Constant Contact.

There are some good reasons to go with a mailer. No surprise to anyone reading this that I did not select one of those apps. I really wanted to solve this problem with a free or freemium WordPress plugin. The whole point, for me anyway, of using WordPress is this extendability. I prefer to run everything I can within WordPress, because it lives entirely within my control.

I chose The Newsletter plugin. It’s name is self explanatory. There were a couple of thresholds that it crossed for me: recently updated, installs in the hundreds of thousands, free, and with support for an SMTP mailing option so the newsletter would look like it came from my website domain ofaolain.com.

Installation

This was very simple. Immediately upon installing and activating, you can navigate to the Newsletter dashboard. The first time you do so, you are taken to a splash page that helps you with the basic configuration to get started.

There is a lot to configure in Newsletter but none of it is too technical. The plugin has its own addons to extend functionality. I am looking forward to playing with some of these, including Locked Content which allows you to create subscriber only content. I started off with the SMTP plugin and the WordPress import plugin. The first was necessary to send the newsletter as an email. The second was to import the email addresses from the Jetpack plugin.

Configure SMTP

The simple mail transfer protocol (SMTP) is the way to send emails. This can be an obstacle to success. If your SMTP server is not configured well, your newsletters may be intercepted as spam. Again, this is a benefit of a large commercial mailer because the email they send is generally accepted.

Out of the box, Newsletter uses the same WordPress mail sending function as Jetpack, from what I can tell. It is the wp_mail() function and when I sent a test message, it arrived at its destination. But there were some red flags because it was coming from my web server and not my my mail server.

I configured Newsletter with a user account I created on my mail server called newsletter. It would hopefully mean that the newsletter would appear in subscriber inboxes as newsletter@ofaolain.com for the sender. I sent myself a test message to see what would happen.

In my case, the email arrived with errors in its header. The spam check is looking at my server’s DKIM, SPF, and DMARC settings.

GMail header information shows that the email passed an SPF test but failed both DKIM and DMARC.

As this explainer on Cloudflare’s site says, DKIM, DMARC, and SPF are authentication methods to help email servers know whether to accept email or not. How you configure those is beyond the scope of this post but it’s pretty easy to do if you are running your own mail server. They are text entries in your mail server configuration that other email servers can check.

Newsletter offers a bunch of re-mailer options that you can use, including a basic SMTP one. Most of the re-mailer services require your own account on those third party servers. As far as I’m concern, if you need one of those, you might as well use Mailchimp or Hubspot.

I used Newsletter’s Generic SMTP addon, which is free. Instead of using the wp_mail() function, it connects to your SMTP server as if you were sending an email from your email account on that server. To configure it, you add your sending user (in my case, newsletter@ofaolain.com) and password and the security method with which you will transmit the email. I turned off insecure SSL connections and used secure SMTP.

Once I made these changes, I sent a second test email. This time, the results were perfect.

GMail header information shows that the email passed an SPF test as well as DKIM and DMARC.

You do not have to do this trial-and-error though. There’s a site called DKIMValidator that allows you to test all of these settings. You send an email to a random generated account on the site and it will show you the DKIM, DMARC, SPF results as well as the output from Spamhaus. In my case, the DKIM, DMARC, and SPF were successes. Spamhaus was a failure because I use a public DNS (Cloudflare). You can confirm that you are not in the Spamhaus spam database on their site.

A Spamhaus project site showing the results for a reputation check on ofaolain.com. Ofaolain.com has no issues.

Once that was done, I was ready to go. I moved very slowly at this point because I wanted to test a couple of newsletters to make sure I could see what was going on before I added subscribers. I didn’t want to accidentally spam anyone.

Subscribers

At this point, you may want to stop and go to Jetpack. You can see your subscriber list on WordPress.com. I was unable to see it from the Jetpack dashboard on my site. Once on the subscriber list, there is an export function in the WordPress.com interface to download subscribers as a .csv file. In my case, it was just a list of email addresses.

Do not uninstall Jetpack before you complete that step. Even if you have Jetpack installed and the newsletter feature is disabled, the subscriber list will not be accessible. Make sure it’s toggle on and grab your subscriber list. As far as I could tell, there wasn’t a way to export the WordPress app subscribers. I’m not sure if they’re still getting the new post alerts.

Importing the file is pretty easy. Add the Newsletter import addon and import the csv file. There are a bunch of options, including how to class new imports and whether to auto-send a welcome email. I set my import list to confirmed, because all of the addresses had been opted in on the old list. I decided not to send an automatic welcome message.

I created a list called “The Latest” and added everyone to the list. You can have multiple lists and there are ways to subdivide your subscribers by traits like language or gender. I am not interested in gathering any more information about anyone than I have to. An email address is plenty.

Subscriber Widget

Newsletter also comes with a widget so that you can add a subscription form to your sidebar. There is also a shortcode so you can have a Newsletter subscription page. This is self-explanatory except that there is a Newsletter widget and a Newsletter minimal widget. I used the former; I’m not sure what the minimal widget offers.

On the Newsletter dashboard, you can set a newsletter list as your default. That helps to ensure that people get on the list you want to run. You can also have the ability to subscribe to multiple lists.

There are also spam defense. I turned on the block against the same address being added more than once. I also activated the double opt-in function, so if an email is added, the email address gets a verification email before the email address is subscribed.

Ready to Send

If you have used an email sender like Mailchimp or Constant Contact, you will be familiar with the newsletter building tool. You add blocks and build each newsletter. You can assign it to specific lists and you can schedule it.

This was very easy to use. I really liked how the building block method worked. The only real challenge I had was that I was sending links to posts that were not yet published when I was creating the newsletter. Newsletter offers a paid option to allow you to get around this but it’s not necessary for me.

There is a block that you can use to grab the latest post but it has to be published. If I wanted to manually create and send newsletters, I could use this. But it means being at my computer or website at a specific time and I don’t like being tied down like that.

A screenshot of the email newsletter template I used to notify subscribers of this post. I created it in advance of the post being published. Both the post and newsletter are scheduled weeks in advance.

In my case, I added a hero block, which includes a feature image and text as well as a button. I add the featured image for the relevant post to the hero block. I add a caption or excerpt. And then I turned the button into a read more option and used the link that the post will be published at. To get this URL, you need to open up your scheduled post and cut and paste the URL in the right hand menu bar, NOT the one with the post number (assuming you are using custom permalinks).

A screenshot of the Newsletter dashboard showing both completed and scheduled posts. Out of the image, there is a duplication button so you can make new newsletters based on previous templates.

Since everything is manually added—the image, the caption, the link—I can schedule the newsletter to be sent as soon as the blog post goes live. I have started to publish my blog posts at 0845 in the morning and then scheduling the email newsletter at 0900. I can create and schedule both the post and newsletter weeks in advance.

A Word on Timing

Another issue is how many emails you send at a time. Too many emails from a single sender can trigger spam filters. Too many emails can also trigger your web host’s resource caps and you can crash into those. I don’t really need to worry too much because I don’t have a lot of subscribers. As that number grows, I may need to think about it further.

By default, Newsletter sends 300 emails an hour. It also uses a cron job to cycle through your subscriber list, sending a small group at a time until all of the newsletter subscribers are emailed. The cron job can be configured in the Newsletter dashboard but mine is configured on my web server. I have disabled the wp-cron function in WordPress because of this.

Newsletter can’t always tell if you’ve got a cron job running. On your Newsletter dashboard, the settings will show a maybe label. I also am getting some “your cron job is broken” error messages on the Newsletter dashboard but they are not correct.

I ended up setting my emails to 200 an hour. I also set my cron job to run every 5 minutes, to process the email queue as quickly as possible. It seems to work fine for me and I have not had any spam-based bounces (although maybe that doesn’t happen).

One benefit to running my own newsletter, instead of with Jetpack, is that I can see when email addresses fail. One person’s email domain had disappeared. One person’s email box had been set to the size of zero bytes. One person had moved companies.

I did not remove these subscribers. Newsletter allows you to designate what has happened to people’s email addresses. I set these three people to bounced and removed them from the lists. But it lets me keep track of the email addresses, in case I ever get around to trying to reactivate those people, wherever they are now.

This is still not 100% confirmation that every email is getting to where it’s going. I know at least one person isn’t receiving the email on their work account and I have not, yet, been able to find out why.

Next Steps

I used the Newsletter function to send my subscribers a warning email, that the format was changing and the new updates would come from this new email address. One thing I really like about Newsletter is you can have an unsubscribe link and a manage your account link. It means that anyone who wants to leave the list can do it at any time. I mean, I love having people follow by email, I think email is the best communication option at the moment. But I also worry that the Jetpack option didn’t always make this easy.

One thing I am contemplating is creating subscriber-only content. I read a lot of things and have blog ideas that never get into an actual blog post. It may be that a couple of links or a brief concept will be added to these newsletters that are otherwise “a new post is published” updates. I haven’t exactly decided what this would look like. It would give people a reason to subscribe, since it would not be on the website. But I also don’t want to overreach on what people are getting the updates for.

By the time you are reading this, I’ll have sent five or six newsletter emails. I already feel as though I’ve got the kinks worked out. I’ve deactivated Automattic’s Jetpack and uninstalled it. So far, so good. I’m looking forward to figuring out how best to leverage this new functionality and am delighted that I can do it without an external re-mail or newsletter service.