Email Essentials vastly reduces the chances of your emails being marked as spam or being rejected. Originally a debugging tool, it has grown into a full-fledged email enhancement plugin. Please note that this plugin is not a “we support any type of transport” Email plugin. For other protocols than S
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 5.6 and PHP 7.4.
SourceWordPress plugins · Nov 14, 2026
01 / Source details
Aboutthistool.
Email Essentials vastly reduces the chances of your emails being marked as spam or being rejected. Originally a debugging tool, it has grown into a full-fledged email enhancement plugin.
Please note that this plugin is not a “we support any type of transport” Email plugin. For other protocols than SMTP, but rather to enhance the email sending capabilities of WordPress. If you need to send emails with other protocols than SMTP, this plugin is not for you. You might want to look at plugins like Post SMTP (not affiliated).
And since version 6.0.0, after more than 10 years of development and internal use, this plugin is now a FOSS plugin, meaning it is free to use, modify and distribute under the GPLv2 license.
In return, we ask you to support the development of this plugin by contributing to the codebase, reporting bugs, and helping others in the community.
Responsible disclosure: If you find a vulnerability, please email us at responsibledisclosure@acato.nl .
Features
Set a good From name and email address, automatically correcting it if needed. For example, a contact form is sent from the visitors email address, resulting in an invalid Sender address. This plugin will correct it to a valid email address. This plugin automatically corrects it.
Correct envelope-from address; often forgotten, but important for deliverability.
Reformat as HTML with plain text alternative; will detect the use of HTML ensures that emails are sent as HTML with a plain text alternative.
Process shortcodes in your email content.
UTF8 recoding, to ensure that special characters are correctly encoded in the email.
Email Essentials allows for adding CSS, header, footer, and body template using filters, see below.
Convert CSS to inline styles for better support in email clients
SMTP configuration
Send emails to multiple addressees as separate emails
S/MIME signing, using a supplied certificate, to ensure the authenticity of the email.
DKIM signing, and providing all information needed to set up DKIM signing for your domain.
Allow redirecting emails sent to the administrator to other email addresses based on the email subject.
Allow redirecting emails sent to the moderators (e.g., for comments).
Keep a history of outgoing emails (debugging, cleared on deactivation)
Email receipt tracking (for investigative purposes only, see GDPR note)
Re-send button for failed emails
Allow sending emails delayed, to prevent sending too many emails at once. (Beta feature)
Important Note
This tool is for users who understand email delivery. If unsure, ask for help.
Under GDPR, storing and tracking emails is prohibited. The history feature is for investigative purposes only!
External services
Email Essentials uses one external service by default, two if you create and define your own IP services.
01CloudFlare DNS over HTTPS (DoH). This is used to resolve domain names to IP addresses when (for example) checking SPF or DKIM records. In theory, it is possible to use PHPs own dns_get_record function, but in practice this often fails due to server DNS-resolve misconfiguration. Using CloudFlare’s DoH service ensures reliable DNS resolution. We only send the hostname (the domain part) to CloudFlare, no other data. Explicitly, we do NOT send any other information.
02The plugin can use an IP-address relay service to accurately determine the sender’s IP address. This is required to accurately check that the sender’s IP address is authorized to send email for the domain (SPF check). To use this, you will need to set up your own service, see documentation on filter acato_email_essentials_ip_services . Without this service, IP detection can be inaccurate because it will use the website itself as a relay. Use of a reverse proxy, load balancer etc. can lead to incorrect IP detection.
Parameters: – (array) $settings The current settings of the plugin.
Expected return: – (array) The new settings of the plugin.
acato_email_essentials_defaults
Parameters: – (array) $defaults The current default settings of the plugin.
Expected return: – (array) The new default settings of the plugin.
Email Content
acato_email_essentials_subject
Parameters: – (string) $the_subject Subject for the email. – (PHPMailer) $mailer The PHPMailer object (by reference).
Expected return: – (string) The (altered) Subject.
acato_email_essentials_body
Parameters: – (string) $should_be_html A text that should be html, but might not yet be, your job to make a nice HTML body. – (PHPMailer) $mailer The PHPMailer object (by reference).
Expected return: – (string) A text that should be html.
acato_email_essentials_head
Parameters: – (string) $the_head_section HTML that is the HEAD section of the HTML email. – (PHPMailer) $mailer The PHPMailer object (by reference).
Expected return: – (string) The altered HEAD section of the HTML email.
acato_email_essentials_css
Parameters: – (string) $the_css CSS for the email (empty by default). – (PHPMailer) $mailer The PHPMailer object (by reference).
Expected return: – (string) The (altered) CSS.
acato_email_essentials_minify_css
Parameters: – (string) $css CSS to be minified.
Expected return: – (string) The minified CSS.
Mail Throttling
acato_email_essentials_mail_is_throttled
Parameters: – (bool) $is_throttled Whether the mail is currently throttled. – (string) $ip The sender’s IP address. – (int) $mails_recently_sent Number of mails recently sent from this IP.
Expected return: – (bool) Whether the mail should be throttled.
acato_email_essentials_mail_throttle_time_window
Parameters: – (int) $time_window Time window in seconds for counting sent emails.
Expected return: – (int) The (altered) time window in seconds.
Parameters: – (int) $count Maximum number of emails allowed per time window.
Expected return: – (int) The (altered) maximum count.
acato_email_essentials_mail_throttle_batch_size
Parameters: – (int) $size Number of emails to send in a single batch.
Expected return: – (int) The (altered) batch size.
IP Detection
acato_email_essentials_ip_services
Parameters: – (array) $services The current list of IP services used to determine the sender’s IP address.
Expected return: – (array) The (altered) list of IP services.
The services must be keyed with ipv4 , ipv6 and dual-stack . The values must be URLs that return the IP address in plain text. The dual-stack service should return an IPv6 address if available, otherwise an IPv4 address, never both.
You can set-up your own service like this;
You will need a webserver that can run PHP, and you need a DNS service that allows you to manually add records.
You will need three webspaces, for example; ipv4.myservice.com, ipv6.myservice.com and dual-stack.myservice.com. You could use the same webspace for all three, but you will still need three subdomains on the service.
For the ipv4 subdomain, ONLY register an A record, pointing to the webserver’s IP address. For the ipv6 subdomain, ONLY register an AAAA record, pointing to the webserver’s IPv6 address. For the dual-stack subdomain, register both an A and an AAAA record, pointing to the webserver’s IP addresses.
Create a file called index.php in each of the webspaces with the following content:
That’s it. You can now use these services in the plugin settings like this;
`php
add_filter(‘acato_email_essentials_ip_services’, ‘my_custom_ip_services’); function my_custom_ip_services($services) { // Add your custom services here $services[‘ipv4’] = ‘https://ipv4.myservice.com’; $services[‘ipv6’] = ‘https://ipv6.myservice.com’; $services[‘dual-stack’] = ‘https://dual-stack.myservice.com’; return $services; } `
acato_email_essentials_ip_service
Parameters: – (string) $service The URL of the IP service for the given type. – (string) $type The type of IP service (‘ipv4’, ‘ipv6’, or ‘dual-stack’).
Expected return: – (string) The (altered) IP service URL.
Filter to modify individual IP service URLs based on type.
acato_email_essentials_spf_patches
Parameters: – (array) $patches The current SPF patches.
Expected return: – (array) The (altered) SPF patches.
$patches format:
– (array) An associative array where keys are domain names and values are arrays of missing SPF mechanisms. – Array keys are domain names (e.g., ‘spf.example.com’). – Array values are arrays of missing SPF mechanisms (e.g., [‘ip4:1.2.3.4’, ‘ip4:5.6.7.8’]).
When to use: – Use this filter to add missing SPF mechanisms for specific domains, for example when the detected IP for outgoing email is not listed in the officially documented SPF record for that domain. – This is the case for at least one service in the wild as of writing, namely Flowmailer. – The IP Address for smtp.flowmailer.
02 / Source details
Gettingstarted.
01Upload the plugin files to the /wp-content/plugins/email-essentials directory, or install via the WordPress plugins screen.
02Activate the plugin through the ‘Plugins’ screen in WordPress.
03Configure settings as needed.
03 / Source details
Frequently asked questions.
Is this a replacement for plugins that use other transport than SMTP?
No, it enhances WordPress email sending but only supports SMTP. You CAN use both plugins, but you must be careful to configure them properly to not conflict with each other.
Is it free?
Email Essentials has always been free, but has never been open source. Since version 6.0.0, it is now a FOSS plugin, meaning it is free to use, modify and distribute under the GPLv2 license.
How can I contribute?
You can contribute by reporting bugs, helping others in the community, or contributing code. See our GitHub repository for more information. Please consider forking the repository and submitting pull requests for any improvements or bug fixes you make.
How do I get support?
If you need support, please visit our support forum or check the GitHub issues page . (If you post the same issue on both, please cross-link your posts.) Acato customers can also contact us through regular channels.
Can we support you financially?
If you are a company, using this plugin in commercial projects, and you wish to support its development, please contact us at sales@acato.nl .
Where do I report security bugs found in this plugin?
Please report security bugs found in the source code of this plugin through the Patchstack Vulnerability Disclosure Program . The Patchstack team will assist you with verification, CVE assignment, and notify the developers of this plugin.
FinderPress Media Auditor helps site administrators scan for broken images, missing Media Library files, unreachable media URLs, and other media issues across WordPress content. Use it to audit images, video, audio, PDFs, featured images, and attachment files without sending scan data to an external
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati