Email & newsletters

Sending a newsletter from WordPress: plugins, services and the rules to follow

Email & newsletters · · Published 2026-09-08 · Updated 2026-10-20

A stack of blank white envelopes and a silver pen on brown paper
A stack of blank envelopes and a pen.

Running a newsletter from WordPress is easy to start and surprisingly easy to get wrong. The hard part is not writing the email; it is collecting consent properly and getting messages into inboxes.

This address once hosted the ShiftThis WordPress Newsletter plugin, which was discontinued years ago. It is not available here and should not be used on a modern site: it was written for WordPress 2.x and PHP versions that are long out of support. This guide covers how to do the same job now.

Two ways to do it

There are two broad architectures, and choosing between them matters more than choosing a particular product.

Everything inside WordPress

A newsletter plugin stores subscribers in your WordPress database, gives you an editor for composing campaigns, and sends the emails. Well-known options in the official plugin directory include MailPoet and the plugin simply called Newsletter; Jetpack also offers a newsletter feature that turns posts into emails for subscribers. The appeal is ownership: your list lives in your own database, and new posts can be emailed automatically.

The catch is delivery. A plugin that sends through your web host's PHP mail function inherits that server's reputation, and shared hosts often cap outgoing mail per hour. Serious in-site setups therefore pair the plugin with a dedicated sending service, either one offered by the plugin's developer or a transactional provider connected over SMTP or an API (see Sending WordPress email through SMTP).

An external email service with a WordPress sign-up form

The alternative is to keep the list at an email service provider such as Mailchimp, Brevo (formerly Sendinblue), Kit (formerly ConvertKit) or Buttondown, and use WordPress only for the sign-up form, through the provider's official plugin, an embed code, or a forms plugin integration. The provider handles bounces, complaints, unsubscribe links and sending infrastructure. You trade some control and a monthly fee (above each provider's free tier) for much less maintenance.

Plugin inside WordPressExternal service
Where the list livesYour databaseThe provider's platform (exportable)
Sending infrastructureYour host or a connected sending serviceThe provider
Bounce and complaint handlingDepends on the plugin and sending serviceBuilt in
Post-to-email automationUsually built inVia RSS campaigns or integrations
Main riskPoor deliverability, server loadLock-in, cost as the list grows

Collecting subscribers properly

Use double opt-in

With double opt-in, a new subscriber must click a confirmation link before receiving anything. It stops people from signing up someone else's address, keeps typo addresses off your list, and gives you a record of consent. Every serious newsletter plugin and provider supports it; turn it on.

Be clear at the point of sign-up

Say what people will receive and how often, next to the form. If your audience includes people in the European Union or the UK, the GDPR applies: consent must be freely given, specific and informed, which rules out pre-ticked boxes and burying the newsletter inside a contact form's general consent. The UK Information Commissioner's Office has a readable guidance on direct marketing and electronic communications.

Ask for little

An email address is enough. Each extra field lowers sign-ups and adds personal data you must protect. Collect a first name only if you will actually use it.

Rules every message must follow

In the United States, the CAN-SPAM Act requires commercial email to identify the sender honestly, use non-deceptive subject lines, include a valid physical postal address, and offer a working opt-out that is honoured within 10 business days. The Federal Trade Commission's CAN-SPAM compliance guide lists the requirements. Other countries have their own rules, generally stricter about consent.

Mailbox providers add technical requirements on top of the law. Since February 2024, Google and Yahoo require senders who send large volumes to their users (Google sets the threshold at around 5,000 messages a day to Gmail addresses) to authenticate mail with SPF and DKIM, publish a DMARC policy, keep spam complaint rates low, and support one-click unsubscribe as defined in RFC 8058. Smaller senders are still expected to have SPF or DKIM in place. See Google's email sender guidelines and Yahoo's sender best practices. Reputable providers and newsletter plugins add the one-click unsubscribe headers for you, but the DNS records for your domain are your job.

Authenticating your domain

Three DNS records tell receiving servers that mail claiming to come from your domain is legitimate:

Make sure the address in the From field uses the domain you authenticated. Sending "from" a Gmail or Yahoo address through a third-party service will fail DMARC alignment, because those providers publish strict DMARC policies.

Writing emails that render

Email clients are far less capable than browsers. Keep layouts to a single column, use inline styles or a template built by your plugin or provider, give every image meaningful alt text, and always send a plain-text alternative alongside the HTML version (most tools generate it automatically). Test in at least Gmail, Outlook and Apple Mail before sending to the whole list; most providers include previews or a test-send feature.

Keeping the list healthy

Quick decision guide

If your newsletter is mostly "email new posts to subscribers" and the list is small, an in-site plugin with a proper sending service is simple and keeps data in one place. If you plan campaigns, segmentation and automations, or expect a large list, an external provider with a WordPress form will save time and protect deliverability. In both cases, double opt-in, authenticated DNS and a visible unsubscribe link are not optional.

The DNS records behind sender authentication are explained step by step in SPF, DKIM and DMARC for WordPress email.