Email Essentials
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. CloudFlare 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. The 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. WordPress Filters acato_email_essentials_settings — Filter plugin settings. acato_email_essentials_defaults — Filter default settings. acato_email_essentials_subject — Filter email subject. acato_email_essentials_body — Filter HTML body of the email. acato_email_essentials_head — Filter HEAD section of HTML email. acato_email_essentials_css — Filter CSS for the email. acato_email_essentials_minify_css — Filter CSS minification. acato_email_essentials_mail_is_throttled — Check if mail should be throttled. acato_email_essentials_mail_throttle_time_window — Set mail throttle time window. acato_email_essentials_mail_throttle_max_count_per_time_window — Set max emails per time window. acato_email_essentials_mail_throttle_batch_size — Set mail batch size. acato_email_essentials_ip_services — Define custom IP services for accurately determining the sender’s IP address. acato_email_essentials_ip_service — Filter individual IP service URLs. acato_email_essentials_website_root_path — Filter to supply the correct website root path in case of non-standard setups. acato_email_essentials_development_tlds — Filter development/local TLDs. WordPress Filters in detail Plugin Settings acato_email_essentials_settings 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. acato_email_essentials_mail_throttle_max_count_per_time_window 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: php <?php header('Content-Type: text/plain'); print $_SERVER['REMOTE_ADDR']; 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_website_root_path Parameters: – (string) $path The current website root path. Expected return: – (string) The (possibly altered) website root path. Filter to supply the correct website root path in case of non-standard setups. acato_email_essentials_development_tlds Parameters: – (array) $tlds Array of top-level domains considered as development environments. Expected return: – (array) The (altered) array of development TLDs. Filter to modify which TLDs are treated as development/local environments. Default values are ‘local’ and ‘test’. Scripts/styles In the public/scripts and public/styles folder you find the JS and CSS files used in the plugin admin area. These files are processed with Webpack, just so it works in all recent browsers. Script is nearly identical to the source. You can find the source files in the src/scripts and src/styles folders. If you feel the need to modify these files, you can change them there, and run npm install ; npm run build to create the production files. Translation files You can use npm run i18n to generate the POT file for translation, update the PO files in the languages folder, and compile to MO/php files. This is a one-task-does-all; run it, change the translations, run it again. Done. See package.json for more details or individual commands. Tools In the tools folder you will find a script to generate DKIM keys, should you want to use DKIM signing. rename to remove the .txt extension and run it in a shell. Tools are provided as-is, without support. Use at your own risk. Read the scripts before using them. You DO NOT HAVE TO USE these scripts, you can generate DKIM keys with any tool you like. Arbitrary section For advanced configuration and custom IP services, see the plugin documentation or source code.
WP Mail SMTP by WPForms – The Most Popular SMTP and
WordPress Mail SMTP Plugin Is your WordPress site not sending emails? You’re not alone. 4+ million websites use WP Mail SMTP to send emails reliably. Our goal is to make email deliverability easy so that your emails always reach the inbox. WP Mail SMTP fixes your email deliverability issues by reconfiguring WordPress to use a proper SMTP provider when sending emails. Best of all, our easy-to-use Setup Wizard and detailed documentation guide you through the process. WP Mail SMTP is free and has everything you need to reliably send your WordPress emails! WP Mail SMTP Pro unlocks even more powerful features like email logging, advanced email reporting and stats, backup connections, email alerts, smart conditional routing, and much more. What is SMTP? SMTP (Simple Mail Transfer Protocol) is an industry-standard for sending emails. Proper SMTP configuration helps increase email deliverability by adding authentication to the emails sent from your site. Popular email clients like Gmail, Yahoo, Office 365, and Zoho are in a constant battle with email spammers, so they check whether emails are originating from a genuine sender. If the proper authentication isn’t there, emails either go in the SPAM folder or, worse, disappear. This is a problem for a lot of WordPress sites. By default, WordPress uses the PHP mail function to send emails generated by WordPress or any contact form plugin like WPForms. But most WordPress hosting companies don’t have their servers properly configured for sending PHP emails. This is why WordPress emails aren’t delivered. How does WP Mail SMTP work? WP Mail SMTP plugin easily resolves email delivery problems by changing the way your WordPress site sends email. We reconfigure the wp_mail() function to use proper SMTP host credentials or an SMTP mail provider. With our built-in SMTP mail provider integrations (recommended), emails are sent using the provider’s direct API. Even if your web host is blocking SMTP ports, your emails will still be sent successfully. This helps you fix all WordPress not sending email issues. WP Mail SMTP plugin includes many different SMTP mailers: SendLayer (#1 Recommended) SMTP.com (Recommended) Brevo (formerly Sendinblue) SMTP (Recommended) Gmail SMTP (Gmail, Google Workspace, G Suite) Elastic Email Mailgun SMTP Mailjet SMTP SendGrid SMTP Postmark SMTP SparkPost SMTP SMTP2GO Microsoft SMTP One-Click Setup (Outlook.com and Office 365) [Pro] Amazon SES SMTP [Pro] Zoho Mail SMTP [Pro] Other SMTP For most options, you can specify the “from name” and “email address” for outgoing emails too. All of these powerful features make WP Mail SMTP the best SMTP solution for WordPress. If you don’t know which mailer to choose, see our Complete Guide to WP Mail SMTP Mailers. SendLayer SendLayer is our #1 recommended transactional email service. Its affordable pricing and simple setup make it the perfect choice for sending emails from WordPress. It also has open and click tracking and email logs. SendLayer is reliable, fast, and easy to set up. You can send hundreds of emails for free when you sign up for a trial. Read our SendLayer documentation for more details. SMTP.COM SMTP.com is a recommended transactional email service. With over 22 years of email delivery expertise, SMTP.com has a reputation for being one of the most reliable senders on the internet. You can start sending emails in minutes and benefit from 50,000 free emails in your first 30 days. Read our SMTP.com documentation for more details. Brevo (formerly Sendinblue) SMTP Brevo is a recommended transactional email service. It serves 80,000+ companies worldwide. Brevo is reliable, fast, and gives you 300 free emails per day. Read our Brevo documentation for more details. WP Mail SMTP PRO In addition to native Microsoft, Amazon SES, and Zoho Mail integrations, WP Mail SMTP Pro provides access to many other powerful features. Click here to purchase WP Mail SMTP Pro now! Email Log Email logging is a powerful feature that keeps a record of all sent emails in WordPress. Email logging helps you to archive, audit, resend, or test email delivery and formatting. Our WordPress email logs also include: Email Log Details Our email logs provide a complete history of all emails sent from WordPress. View the subject, sender, recipients, content, headers, open and click rates, delivery status, source plugin, and more! Resend Emails Resend emails individually or in bulk, whether they failed or were delivered successfully. You can also forward important emails to an alternative email address. And many more Email Log Features Store all email attachments, export email logs, print emails, see delivery status, and more. Email Reports Review weekly sent and failed emails in a dashboard chart. Email reports make it easy to track deliverability and engagement. Open rates and click-through rates are grouped by subject line, making it easy to see the performance of your campaigns or notifications. Weekly Email Summary Get statistics about WordPress emails, including how many emails are being sent and which ones are being opened and clicked. The Summary also shows you deliverability statistics without the need to log in to WordPress to check them. Track Email Opens and Clicks View open and click stats for WordPress emails, grouped by subject line in your Email Report. Email Alerts If your emails stop sending, get notified instantly via Slack, Microsoft Teams, Discord, SMS/ Twilio, webhooks, or email (via secure API). In combination with our email logging and resending features, Email Alerts ensure that no important email will ever be lost. Backup Connection Configure an extra connection that kicks in if your primary connection fails. WP Mail SMTP automatically detects connection issues and automatically switches to the backup mailer. It will also automatically retry emails that failed. Smart Conditional Routing Create criteria to send different types of emails using different mailers. Filter by the contents of the email Subject or Message, From or To addresses, the plugin that generated the email, and more. This allows you to mix transactional and marketing providers to improve deliverability. Rate Limiting Control the number of emails your WordPress site sends in a specific amount of time so you stay within your SMTP provider’s rate limits. WP Mail SMTP allows you to specify the maximum number of emails that will be sent every minute, hour, day, week, or month and automatically queues emails to stay within those limits. Optimized Email Sending Are emails slowing down your site? Let WP Mail SMTP queue your emails for better performance. With optimized sending, emails are queued in the background and sent when your server has sufficient resources, avoiding bottlenecks that can slow down your site. Manage WordPress Emails and Notifications Control the default notifications WordPress sends. Use a simple switch to disable specific types of notifications if you don’t want to receive them. WordPress Multisite WordPress Multisite Network Settings For users running a multisite network, save time with a centralized location to easily configure your SMTP settings for all sites. Manage Multisite Email Logs Easily Network Admins can view and manage email logs for subsites with easy switching and dashboard views. Expert Support We provide limited support on the WordPress.org forums. World-class one-on-one email support is available to WP Mail SMTP Pro users. White Glove Setup If you’re not sure how to fix your emails, sit back and relax. We’ll set up WP Mail SMTP for you! White Glove Setup includes installation, configuration in WordPress, DNS configuration, full mailer setup, and testing. White Glove Setup is available for our recommended mailers: SendLayer, Brevo, and SMTP.com. Credits WP Mail SMTP plugin was originally created by Callum Macdonald. It is now owned and maintained by the team behind WPForms – the best drag & drop form builder for WordPress. You can try the free version of WPForms plugin to see why it’s the best in the market.