WP-EMail · Version history
WP-EMail changelog and version history
- Latest version
- 3.0.0
- Aug 10, 2026 (3 months ago)
- Releases
- 41
- since 2007
- In the last year
- 2
- about one every 17 days
- Tested up to
- WordPress 7.0.8
- PHP 8.2 or later
Releases each year
- 200713 releases
- 20082 releases
- 20091 release
- 20103 releases
- 20144 releases
- 20153 releases
- 20163 releases
- 20172 releases
- 20203 releases
- 20222 releases
- 20231 release
- 20242 releases
- 20262 releases
20262 releases
WP-EMail 3.0.0Latest
- FIXED: Uninstalling left one flood record behind per address that had sent recently. They expire on their own, but until they did the site was still counting down a cooldown for a plugin that was no longer installed
- FIXED: Every render of the form minted a ten-minute verification challenge, and rendering it is free and needs no account — so a request loop grew wp_options by two rows a time with nothing to stop it. A visitor may now hold ten live challenges at once, which is far more than anyone with several ta…
- FIXED: The reverse-DNS lookup for the log ran once per recipient rather than once per send, so the default maximum of five multiplied a blocking call — whose duration is chosen by whoever owns the address’s reverse zone — by five
- FIXED: The endpoint checked only that a post was published, so any published post of a non-public post type — a reusable block, a template, a plugin’s private records — could be mailed to an address of the sender’s choosing by an anonymous visitor, with its title coming back in the response. The po…
- FIXED: The flood interval was a read of the log followed, much later, by a write, so requests arriving together all decided they were clear and all sent — it bounded a polite sender and did nothing to a parallel one. The slot is claimed before anything is sent, and an attempt counts whether or not…
- FIXED: Image verification failed open. With the setting on and GD missing — the state a host lands in after a PHP upgrade — the check was skipped entirely and the form’s only anti-automation control disappeared with nothing to say so. The form now refuses to submit until an administrator turns it o…
- FIXED: The verification image was 55×15, one call to the built-in GD font at a fixed pitch from a fixed origin, no noise and no distortion, which made it readable by thirty-odd reference bitmaps and a per-cell crop. Each character is now drawn, rotated and placed on its own, over speckle and throug…
- FIXED: The name, address and header-token checks ran only when the matching field was switched on — so turning a field off turned its validation off with it, while the value was still read and still used. A submission does not have to come from the form; the checks are unconditional now, and only “…
- BREAKING: WordPress 6.8 and PHP 8.2 are now the minimum. A site on anything older will not be offered this update at all.
- BREAKING: The email_form-fieldvalues filter is renamed wp_email_form_field_values. There is no compatibility shim.
- BREAKING: The eighteen wp_options rows the plugin used are consolidated into wp_email_options and wp_email_version. Your settings are migrated automatically on upgrade and the old rows are deleted.
- BREAKING: WP-EMail’s three checkboxes on the WP-Stats options screen become one setting on its own settings screen, and the shared stats_display and stats_mostlimit rows are no longer read. Update all seven WP-Stats plugins together.
- BREAKING: EMAIL_SHOW_REMARKS is renamed WP_EMAIL_SHOW_REMARKS.
- BREAKING: The settings screen moves from ?page=wp-email-options to ?page=wp-email-settings and is gated on manage_options; the logs screen keeps manage_email.
- BREAKING: email_wpstats_instance(), email_page_admin_general_stats(), email_page_admin_most_stats(), email_page_general_stats() and email_page_most_stats() are removed, along with the global email_popup() in JavaScript.
- BREAKING: The E-Mail Icon setting and the two bundled GIFs are gone, replaced by one inline SVG. A custom link template using %EMAIL_ICON_URL% is rewritten to %EMAIL_ICON% automatically, the whole <img> at a time where it sat in one.
- BREAKING: The E-Mail Text Link For Post, E-Mail Text Link For Page and E-Mail Text Link Style settings are removed, and %EMAIL_TEXT% with them. The link is one HTML template, migrated from whatever those three said. The first two parameters of email_link() are accepted and ignored.
- BREAKING: %EMAIL_POPUP% is now the value of a data-wp-email-popup attribute rather than the whole attribute, because a bare variable in attribute position did not survive the sanitizer.
- NEW: A %POST_TYPE% link variable, which becomes the post type’s singular label — Post, Page, or a custom type’s own.
- CHANGED: The settings screen is two tabs, Settings and Templates, rather than one page with the eight templates several screenfuls down.
- BREAKING: The plugin no longer loads email-css.css from your theme directory.
- NEW: Restructured into includes/class-wp-email-*.php. The template tags — email_link(), get_emails(), get_mostemailed() and the rest — keep their names and signatures.
- NEW: The settings screen is built on the WordPress Settings API, and the e-mail log is a standard admin list table with sortable columns and a per-page screen option.
- NEW: Image verification no longer uses PHP sessions. Sessions are unavailable behind most page caches and on a lot of hosting, which made verification fail outright; the challenge now lives in a short-lived transient issued per form. If your server has no GD library the option is shown as unavailab…
- NEW: A wp_email_capability filter for handing either screen to a capability of your own.
- NEW: The e-mail table gained indexes on the post ID, status and IP columns.
- NEW: Added a PHPUnit test suite, a Vitest suite for the JavaScript, and GitHub Actions CI.
- CHANGED: Proxy headers such as X-Forwarded-For are no longer trusted by default, because trusting them let anyone bypass the interval between e-mails. Sites behind Cloudflare or another reverse proxy must opt in via the Header That Contains The IP setting, the WP_EMAIL_TRUST_PROXY constant, or the…
- CHANGED: The JavaScript was rewritten without jQuery, moved to js/, and every inline onclick is gone.
- CHANGED: The two envelope images and the loading GIF are replaced by one inline SVG and a CSS spinner, so the plugin ships no images at all.
WP-EMail 2.69.4
20242 releases
WP-EMail 2.69.3
WP-EMail 2.69.2
20231 release
WP-EMail 2.69.1
20222 releases
WP-EMail 2.69.0
WP-EMail 2.68.2
20203 releases
WP-EMail 2.68.1
WP-EMail 2.68.0
WP-EMail 2.67.6
20172 releases
WP-EMail 2.67.5
WP-EMail 2.67.4
20163 releases
WP-EMail 2.67.3
WP-EMail 2.67.2
WP-EMail 2.67.1
20153 releases
WP-EMail 2.67
WP-EMail 2.66
WP-EMail 2.65
20144 releases
WP-EMail 2.64
WP-EMail 2.63
WP-EMail 2.62
WP-EMail 2.61
20103 releases
WP-EMail 2.52
WP-EMail 2.51
WP-EMail 2.50
20091 release
WP-EMail 2.40
20082 releases
WP-EMail 2.31
WP-EMail 2.30
200713 releases
WP-EMail 2.20
WP-EMail 2.11
WP-EMail 2.10
WP-EMail 2.07
WP-EMail 2.06
WP-EMail 2.05
WP-EMail 2.04
WP-EMail 2.04a
WP-EMail 2.03
WP-EMail 2.02
WP-EMail 2.01
WP-EMail 2.00b
WP-EMail 1.00
Questions about WP-EMail’s releases
What is the latest version of WP-EMail?
3.0.0, released on Aug 10, 2026 (2 months ago). It’s tested up to WordPress 7.0.8 and needs PHP 8.2 or later.
How often is WP-EMail updated?
2 releases in the last year, about one every 17 days. Its first release on WordPress.org dates from March 2007.
Know when your rivals ship
Track your plugin and its rivals: TrackWP sees each new release in the nightly snapshot and alerts you, with what it did to their rank.
Start freeRelease dates come from the day each version’s folder was made in WP-EMail’s WordPress.org SVN repository; the notes from its readme’s changelog, as its authors wrote it.