=== WP Mail SMTP by WPForms ===
Contributors: wpforms, jaredatch, smub, slaFFik
Tags: smtp, wp mail smtp, wordpress smtp, gmail smtp, sendgrid smtp, mailgun smtp, mail, mailer, phpmailer, wp_mail, email, mailgun, sengrid, gmail, sendinblue, wp smtp
Requires at least: 4.9
Tested up to: 5.5
Stable tag: 2.4.0
Requires PHP: 5.5.0
Make email delivery easy for WordPress. Connect with SMTP, Gmail, Outlook, SendGrid, Mailgun, Zoho, SES, and more.
== Description ==
### WordPress Mail SMTP Plugin
Having problems with your WordPress site not sending emails? You're not alone. Over 1 million websites use WP Mail SMTP to send their emails reliably.
Our goal is to make email deliverability easy and reliable. We want to ensure your emails reach the inbox.
WP Mail SMTP fixes your email deliverability by reconfiguring WordPress to use a proper SMTP provider when sending emails.
= What is SMTP? =
SMTP (Simple Mail Transfer Protocol) is an industry standard for sending emails. Proper SMTP configuration helps increase email deliverability by using authentication.
Popular email clients like Gmail, Yahoo, Office 365, and Zoho are in a constant battle with email spammers. One of the things they look at is if an email is originating from the location it claims to be originating from.
If the proper authentication isn't there, then emails either go in the SPAM folder or worst, don't get delivered at all.
This is a problem for a lot of WordPress sites because by default, WordPress uses the PHP mail function to send emails generated by WordPress or any contact form plugin like WPForms.
The issue is that most WordPress hosting companies don't have their servers properly configured for sending PHP emails.
The combination of two causes your WordPress emails to not get delivered.
= How does WP Mail SMTP work? =
WP Mail SMTP plugin easily resolves email delivery problems by improving and changing how your WordPress site sends email. We reconfigure the `wp_mail()` function to either use proper SMTP host credentials or leverage a built-in SMTP mail provider.
When using one of our built-in SMTP mail provider integrations (recommended), emails are sent using the provider's direct API. This means even if your web host is blocking SMTP ports, your emails still send successfully.
This helps you fix all WordPress not sending email issues.
WP Mail SMTP plugin includes many different SMTP setup options:
1. SMTP.com (Recommended)
2. Sendinblue SMTP (Recommended)
3. Mailgun SMTP
4. SendGrid SMTP
5. Gmail SMTP
6. Microsoft SMTP (Outlook.com and Office 365) [Pro]
7. Amazon SES SMTP [Pro]
8. Zoho Mail SMTP [Pro]
9. All Other SMTP
For most options, you can specify the "from name" and "email address" for outgoing emails.
Instead of having users use different SMTP plugins and workflows for different SMTP providers, we decided to bring it all in one. This is what makes WP Mail SMTP, the best SMTP solution for WordPress.
= SMTP.COM =
SMTP.com is a recommended transactional email service.
With over 22 years of email delivery expertise, SMTP.com has been around for almost as long as email itself. They are known among internet providers as one of the most reliable senders on the internet.
Their easy integration process lets you start sending emails in minutes and benefit from years of experience. SMTP.com provides users 50,000 free emails the first 30 days.
Read our SMTP.com documentation for more details.
= Sendinblue SMTP =
Sendinblue is a recommended transactional email service.
They serve 80,000+ growing companies around the world and send over 30 million emails each day.
Their email deliverability experts are constantly at work optimizing the reliability and speed of their SMTP infrastructure. Sendinblue provides users 300 free emails per day.
Read our Sendinblue documentation for more details.
= Mailgun SMTP =
Mailgun SMTP is a popular SMTP service provider that allows you to send large quantities of emails. They provide 5,000 free emails per month for 3 months.
WP Mail SMTP plugin offers a native integration with MailGun. All you have to do is connect your Mailgun account, and you will improve your email deliverability.
Read our Mailgun documentation for more details.
= SendGrid SMTP =
SendGrid has a free SMTP plan that you can use to send up to 100 emails per day. With our native SendGrid SMTP integration, you can easily and securely set up SendGrid SMTP on your WordPress site.
Read our SendGrid documentation for more details.
= Gmail SMTP =
Often bloggers and small business owners don't want to use third-party SMTP services. Well you can use your Gmail or G Suite account for SMTP emails.
This allows you to use your professional email address and improve email deliverability.
Unlike other Gmail SMTP plugins, our Gmail SMTP option uses OAuth to authenticate your Google account, keeping your login information 100% secure.
Read our Gmail documentation for more details.
= Microsoft SMTP (Outlook.com and Office 365) =
Many business use Outlook.com or Office 365 to their to power their email. For those users, the Microsoft mailer can be a great option. This integration allows you to use your existing Outlook.com or Office 365 account to send your emails reliably.
= Amazon SES SMTP =
Advanced or technical users can harness the power of Amazon AWS (Amazon Web Services) with the Amazon SES mailer. With this integration, you can send a high volume of emails at a very reasonable rate.
Read our Amazon SES documentation for more details.
= Zoho Mail SMTP =
Send emails using your personal or business Zoho Mail account, all while keeping your login credentials safe.
Read our Zoho Mail documentation for more details.
= Other SMTP =
WP Mail SMTP plugin also works with all major email services such as Gmail, Yahoo, Outlook, Microsoft Live, and any other email sending service that offers SMTP.
You can set the following options:
* Specify an SMTP host.
* Specify an SMTP port.
* Choose SSL / TLS encryption.
* Choose to use SMTP authentication or not.
* Specify an SMTP username and password.
To see recommended settings for the popular services as well as troubleshooting tips, check out our SMTP documentation.
We hope that you find WP Mail SMTP plugin helpful!
### WP Mail SMTP PRO
In addition to native Microsoft and Amazon SES integrations, WP Mail SMTP Pro provides access to many other powerful features and services.
Click here to purchase WP Mail SMTP Pro now!
= Email Log =
Email Logging lets you log and view all emails sent from your site. Email logs are helpful for storing emails for your records, auditing outgoing emails, and debugging during site development.
= Manage WordPress Emails and Notifications =
The Manage Notification feature gives you full control over which email notifications WordPress sends. This means you can disable different WordPress notification emails. Don't want to receive emails when new users are created? No problem, turn it off.
= Expert Support =
We provide limited support for the WP Mail SMTP plugin on the WordPress.org forums. Access to our world class one-on-one email support is available to WP Mail SMTP Pro users.
= White Glove Setup =
Our White Glove Setup service is a great option that anyone can benefit from. Whether you don't have the time or maybe you feel a bit in over your head - we've got you covered.
You can sit back and relax while we set up everything for you. White glove setup includes WP Mail SMTP plugin installation and setup, configuration adjustments to your DNS for proper email domain name verification, Mailgun setup, and final testing to confirm everything is passing with flying colors.
### Security
The WP Mail SMTP team takes security very seriously. Not only does the plugin follow all security best practices, but we have several options available to ensure your site is safe and secure.
- Direct SMTP mailer integrations (recommended), such as SMTP.com, SendGrid and Mailgun, use the official provider APIs. This means you never enter your username or password in the plugin settings and these credentials are not stored in the database. Instead, we use tokens or API keys which are much more secure.
- When using Other SMTP mailer, we provide the option to insert your password in your `wp-config.php` file, so it's not visible in your WordPress settings or saved in the database.
### 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.
### What's Next
If you like this plugin, then consider checking out our other projects:
* OptinMonster - Get More Email Subscribers with the most popular conversion optimization plugin for WordPress.
* MonsterInsights - See the Stats that Matter and Grow Your Business with Confidence. Best Google Analytics Plugin for WordPress.
* SeedProd - Jumpstart your website with the #1 Coming Soon & Maintenance Mode Plugin for WordPress.
Visit WPBeginner to learn from our WordPress Tutorials and find out about other best WordPress plugins.
== Installation ==
1. Install WP Mail SMTP by WPForms either via the WordPress.org plugin repository or by uploading the files to your server. (See instructions on how to install a WordPress plugin)
2. Activate WP Mail SMTP by WPForms.
3. Navigate to the Settings area of WP Mail SMTP in the WordPress admin.
4. Choose your SMTP option (Mailgun SMTP, SendGrid SMTP, Gmail SMTP, or Other SMTP) and follow the instructions to set it up.
5. Need more help? Get support with WP Mail SMTP PRO.
== Frequently Asked Questions ==
= Can I use this plugin to send email via Gmail, G Suite, Outlook.com, Office 365, Hotmail, Yahoo, or AOL SMTP? =
Yes! We have extensive documentation that covers setting up SMTP most popular email services.
Read our docs to see the correct SMTP settings for each service.
= Help! I need support or have an issue. =
Please read our support policy for more information.
Limited support is available for WP Mail SMTP users via WordPress.org support forums.
Email support and set up assistance is available to WP Mail SMTP Pro users.
= I found a bug, now what? =
If you've stumbled upon a bug, the best place to report it is in the WP Mail SMTP GitHub repository. GitHub is where the plugin is actively developed, and posting there will get your issue quickly seen by our developers (myself and Slava). Once posted, we'll review your bug report and triage the bug. When creating an issue, the more details you can add to your report, the faster the bug can be solved.
= Can you add feature x, y or z to the plugin? =
Short answer: maybe.
By all means please contact us to discuss features or options you'd like to see added to the plugin. We can't guarantee to add all of them, but we will consider all sensible requests. We can be contacted here:
https://wpmailsmtp.com/contact/
== Screenshots ==
1. WP Mail SMTP Settings page
2. Gmail / G Suite settings
3. Mailgun settings
4. SendGrid settings
5. SMTP settings
6. Send a Test Email
== Changelog ==
= 2.4.0 - 2020-09-17 =
* Added: Prefix all 3rd-party libraries to avoid compatibility issues with other plugins using different versions of the same libraries.
* Changed: Sendinblue SDK library version to 6.4.
* Changed: Google apiclient library version to 2.7.
* Changed: Improve plugin settings input and toggle focus states.
* Fixed: Hide admin bar menu when errors are present and the "Hide Email Delivery Errors" setting is enabled.
* Fixed: CSS sourcemaps warning messages in browser dev tools.
* Fixed: Action Scheduler tasks being registered too early and not getting assigned to the plugin group.
* Fixed: Admin bar CSS asset loading when the admin bar is not showing.
* Fixed: Fatal error on plugin uninstall if `ActionScheduler_QueueRunner::unhook_dispatch_async_request` method does not exist.
* Fixed: PHP Deprecated notice for `base_convert()` function usage in the Mailgun mailer.
= 2.3.1 - 2020-08-20 =
* Added: A WP Mail SMTP admin bar menu if there is an email delivery error or notifications.
* Added: WordPress 5.5 compatibility.
* Changed: Improve copy button user experience for Gmail Authorized redirect URI option.
* Changed: Email delivery error admin notices are now displayed only on plugin pages.
* Changed: Improve plugin settings UI by hiding certain options if the mailer does not support them.
* Changed: Pepipost API mailer is no longer available for new installs.
* Fixed: WP Site Health check for missing DB tables.
* Fixed: PHP errors caused by Actions Scheduler library used inside the plugin.
* Fixed: PHP error on plugin settings and WP Site Health pages if the plugin mailer option is empty for some reason.
= 2.2.1 - 2020-07-09 =
* Added: Gmail mailer now supports aliases.
* Added: Support both old PHPMailer v5 (WordPress <=5.4) and PHPMailer v6 (WordPress >=5.5).
* Changed: Pepipost mailer is now using the native API v5 instead of the SendGrid migration API.
* Fixed: Incorrect Mailgun Domain Name option was not showing an email delivery error.
* Fixed: Empty debug errors for the Sendinblue mailer are no more.
* Fixed: Properly compare From Email option value with a correct default email address from WP core.
= 2.1.1 - 2020-06-08 =
* Changed: Remove current automatic default reply-to address and add WP filter `wp_mail_smtp_processor_set_default_reply_to` for setting default reply-to addresses.
* Changed: Improve description for several options with links to an article about how to properly use constants.
* Fixed: PHP parse error connected to Monolog library on PHP versions < 7.x.
= 2.1.0 - 2020-06-04 =
* Added: Async/scheduled tasks management support.
* Added: New warning notification for selecting the "Default (none)" mailer and saving the plugin settings.
* Changed: Set the original From Email as Reply-To address if it was overwritten by the Force From Email option.
* Changed: The Force From Email option is now enabled by default, for new plugin installs.
* Changed: Reply-To header is now set when not provided, equals to From Name/Email.
* Fixed: Display a non-empty PHPMailer error when some non-SMTP mailers generate errors.
* Fixed: Display a more accurate message, when the "channel - not found" error is triggered by SMTP.com API.
* Fixed: Save and display debug errors for the "Other SMTP" mailer.
* Fixed: Improve the debug details for the "Invalid address (setFrom)" error in the Email Test tab.
* Fixed: Improve the debug details for SMTP CA verification fail, Gmail Guzzle requirements, and Gmail invalid grant errors.
* Fixed: Improve the uninstall cleanup procedure.
= 2.0.1 - 2020-05-07 =
* Changed: Improved description of the "Do Not Send" plugin option.
* Fixed: Due to Pepipost API changes we now convert new lines so they are preserved in plain text emails.
* Fixed: Downgrade internal Guzzle dependency to 6.4 to temporarily fix compatibility issues with WordPress and Guzzle 6.5. Affects Gmail mailer.
= 2.0.0 - 2020-04-27 =
* IMPORTANT: Support for PHP 5.2-5.4 has been discontinued. If you are running one of those versions, you MUST upgrade PHP before installing or upgrading to WP Mail SMTP v2.0. Failure to do that will disable WP Mail SMTP functionality.
* Added: new mailer - SMTP.com integration.
* Changed: Plugin filters that change the FROM Name/Email in emails are now always running last.
* Fixed: `false` value of the `WPMS_SMTP_AUTH`/`WPMS_SMTP_AUTOTLS` constants was not properly handled in UI.
* Fixed: various minor code and internal links improvements.
= 1.9.0 - 2020-03-23 =
* Added: Add various Status tests and Info section on Tools > Site Health page.
* Added: Notify admin if there are unsaved changes in plugin admin area options.
* Fixed: Test email now has a proper bottom margin for better look.
* Changed: Update "About us" plugin page with relevant information.
* Changed: Save default WordPress FROM Email address when incorrect FROM Email address is saved by a user.
= 1.8.1 - 2019-12-13 =
* Fixed: Revert Guzzle version to 6.4.1 because Sendinblue and Gmail mailers may experience issues under certain circumstances while sending emails (not all sites are affected).
* Fixed: Make compatible the WordPress PhpMailer class inline attachments management with the Sendgrid API.
= 1.8.0 - 2019-12-12 =
* Added: New recommended mailer: Pepipost.
* Added: "Suggest a Mailer" link in a list of mailers to send us your ideas about new ones.
* Fixed: Sendgrid: Content ID for attachments missing.
* Changed: Timeout to HTTP requests (pepipost, sendgrid, mailgun), same as max_execution_time, to prevent fails when sending emails with big attachments.
= 1.7.1 - 2019-11-11 =
* Fixed: Compatibility with WordPress 5.3.
* Fixed: `Processor::get_default_email()` always returns empty value when server incorrectly configured.
= 1.7.0 - 2019-10-24 =
* Added: Add a new constant `WPMS_DO_NOT_SEND` to block email sending.
* Fixed: Default email (wordpress@example.com) rewriting in CLI mode.
* Fixed: Incorrect conflicts detection with certain plugins.
* Fixed: various typos in plugin settings.
= 1.6.2 - 2019-09-02 =
* Fixed: Race condition when loading with certain plugins, that send emails very early. Makes email delivery more reliable.
= 1.6.0 - 2019-08-21 =
* Added: New transactional mailer: Sendinblue.
* Added: Educate users to use transactional mailers for better deliverability.
* Added: New option and filter to disable admin area delivery error notices.
* Changed: Hide private API key saved in the DB for API based mailers using `input[type=password]`.
* Changed: Update links to various docs, pointing now to https://wpmailsmtp.com.
= 1.5.2 - 2019-07-18 =
* Fixed: "Redirect URI mismatch" error for "Gmail" mailer when trying to re-authorize an account that was initially created with version < v1.5.0.
* Changed: Make "Authentication" setting in "Other SMTP" mailer ON by default for new users.
* Changed: Mailers docs links now point to wpmailsmtp.com own site.
= 1.5.1 - 2019-07-12 =
* Fixed: Duplicated emails sent to the first recipient in a loop (and others not receiving their emails).
= 1.5.0 - 2019-07-09 =
* Added: Loсo plugin support.
* Added: "About us" admin area page.
* Added: Display in debug output a possible conflicting plugin existence.
* Added: Lots of actions and filters to improve flexibility of the plugin.
* Changed: Plugin menu is now top level.
* Changed: Hide secrets/API keys in page DOM in plugin admin area.
* Changed: Do not save constant values into the database when plugin settings are saved.
* Changed: Lots of i18n improvements to support translation for both free and paid version of the plugin.
* Changed: Gmail mailer - allow to change From Name email header.
* Changed: Gmail mailer - display email used to create a connection.
* Changed: WordPress 4.9 is the minimum WordPress version we support.
* Fixed: X-Mailer header should be present in all emails.
* Fixed: PHP notices when migrating under certain circumstances from 0.x version of the plugin.
* Fixed: Options::get_group() now supports values set via constants.
= 1.4.2 - 2019-03-23 =
* Changed: Tested up to WordPress 5.1.x.
* Changed: Removed TGMPA library.
= 1.4.1 - 2018-12-03 =
* Fixed: correctly process backslashes in SMTP passwords defined via constants.
* Changed: allow to send a Test Email when Default (none) mailer is selected in plugin settings.
= 1.4.0 - 2018-11-29 =
* Added: New option: Do Not Send - block emails from being sent.
* Added: New option: Send HTML or plain text emails when doing an Email Test.
* Added: New option: Mailgun region selection - US and EU (US is default to preserve compatibility).
* Fixed: Compatibility with WordPress 3.6+.
* Fixed: Compatibility with WordPress 5.0.
* Fixed: Constants usage is much more reliable now, works correctly on Multisite. Constants are global accross the whole network.
* Fixed: Preserve multipart emails when using Sendgrid/Mailgun mailers (were converted to HTML-only).
* Fixed: Security hardening.
* Changed: Prefill Email Test page From field with currently logged in user email.
* Changed: Update libraries: google/apiclient-services, google/auth, phpseclib/phpseclib and their dependecies.
* Changed: Display in debug output cURL version if Gmail mailing failed.
* Changed: Display in debug output OpenSSL version if it exists if Gmail/SMTP mailing failed.
* Changed: Display plugin version in dashboard error notice when emailing failed.
* Changed: Do not allow to send Test Email if mailer not configured properly.
* Changed: Notify in plugin admin area that Gmail doesn't allow to redefine From Name/Email etc.
* Changed: List all constants with descriptions in plugin main file: wp_mail_smtp.php.
* Changed: TGMPA: change descriptions from "Required" to "Recommended" (labels were incorrect).
= 1.3.3 - 2018-07-05 =
* Fixed: Compatibility with other plugins, that are using Google Service or Google Client classes.
* Changed: Optimize code loading.
= 1.3.2 - 2018-06-29 =
* Make sure that other plugins/themes are not conflicting with our TGMPA library.
= 1.3.1 - 2018-06-29 =
* Fixed: Other SMTP: Clear new Debug messages about failed email delivery on next successful email sending.
* Fixed: Introduce conditional autoloader to workaround Gmail PHP 5.5 requirement and its library compatibility issues vs PHP 5.3+ minimum viable plugin version.
= 1.3.0 - 2018-06-28 =
* Added: New option: force From Email rewrite regardless of the current value.
* Added: New option: force From Name rewrite regardless of the current value.
* Added: New option: remove all plugin data on plugin uninstall (when user deletes it).
* Added: Notify site admins in wp-admin area with a notice about last failed email delivery. Cleans up on successful delivery.
* Added: Notify site admins in wp-admin area with a notice about possible compatibility issues with other SMTP and email delivery plugins.
* Added: Improve User Debug Experience when doing Email Test - display helpful description and steps to fix the issue.
* Added: New users: provide default SMTP Port value for new users based on Encryption selection.
* Added: New users: notify about not configured plugin settings.
* Added: New users: Recommend free WPForms Lite plugin for those who don't have it.
* Added: SendGrid/Mailgun: provide support for multipart/alternative types of emails.
* Added: Gmail: new button to remove connection and to connect a new Google account.
* Fixed: Support plugin installation into /mu-plugins/ directory.
* Fixed: SendGrid: required text/plain part of email being the first one - fixes plain text emails not having links.
* Fixed: SendGrid and Mailgun: improperly sending plain text emails in html format.
* Fixed: SMTP Debug output was empty in some cases.
* Fixed: Compatibility with lots of other plugins that use Google Analytics library of different versions.
* Fixed: "client_id is empty" is no more a problem, should be fixed.
* Changed: For SendGrid and Mailgun allow using custom defined attachments names if present. Fallback to file name.
* Changed: Gmail: switch to a wider scope to prevent possible issues in certain circumstances.
* Changed: Remove whitespaces start/end of keys, secrets etc.
* Changed: Improved helpful description tests of various options.
* Changed: Improved plugin autoloading functionality.
= 1.2.5 - 2017-02-05 =
* Fixed: `Return path` can't be turned off.
* Fixed: `Authentication` sometimes can't be turned off.
* Fixed: `Auto TLS` sometimes can't be turned off.
* Fixed: BCC support for Gmail was broken.
* Fixed: Debug output improved to handle SELinux and grsecurity.
* Fixed: Strip slashes from plugin settings (useful for `From Name` option).
* Fixed: Change the way sanitization is done to prevent accidental removal of useful data.
* Fixed: Plugin activation will not overwrite settings back to defaults.
* Fixed: Properly set `Auto TLS` option on plugin activation.
* Fixed: Providers autoloading improved for certain Windows-based installs.
* Fixed: Use the proper path to load translations from plugin's `/languages` directory.
* Changed: Do not autoload on each page request plugin settings from WordPress options table.
* Changed: Do not autoload Pepipost classes unless it's saved as active mailer in settings.
= 1.2.4 - 2017-01-28 =
* Fixed: Improved escaping in debug reporting.
= 1.2.3 - 2017-01-22 =
* Fixed: Gmail tokens were reset after clicking Save Settings.
* Fixed: Slight typo in Gmail success message.
= 1.2.2 - 2017-12-27 =
* Fixed: Correctly handle Mailgun debug message for an incorrect api key.
* Fixed: Fatal error for Gmail and SMTP mailers with Nginx web-server (without Apache at all).
* Changed: Update X-Mailer emails header to show the real sender with a mailer and plugin version.
= 1.2.1 - 2017-12-21 =
* Fixed: Failed SMTP connections generate fatal errors.
= 1.2.0 - 2017-12-21 =
* Fixed: Decrease the factual minimum WordPress version from 3.9 to 3.6.
* Changed: Improve debug output for all mail providers.
= 1.1.0 - 2017-12-18 =
* Added: New option "Auto TLS" for SMTP mailer. Default is enabled. Migration routine for all sites.
* Changed: Improve debug output - clear styles and context-aware content.
* Changed: Better exceptions handling for Google authentication process.
* Changed: Do not sanitize passwords, api keys etc - as they may contain special characters in certain order and sanitization will break those values.
* Changed: Improve wording of some helpful texts inside plugin admin area.
* Fixed: Do not include certain files in dependency libraries that are not used by Google mailer. This should stop flagging plugin by Wordfence and VaultPress.
* Fixed: Constants usage is working now, to define the SMTP password, for example.
* Fixed: Notice for default mailer.
= 1.0.2 - 2017-12-12 =
* Fixed: PHPMailer using incorrect SMTPSecure value.
= 1.0.1 - 2017-12-12 =
* Fixed: Global POST processing conflict.
= 1.0.0 - 2017-12-12 =
* Added: Automatic migration tool to move options from older storage format to a new one.
* Added: Added Gmail & G Suite email provider integration - without your email and password.
* Added: Added SendGrid email provider integration - using the API key only.
* Added: Added Mailgun email provider integration - using the API key and configured domain only.
* Added: New compatibility mode - for PHP 5.2 old plugin will be loaded, for PHP 5.3 and higher - new version of admin area and new functionality.
* Changed: The new look of the admin area.
* Changed: SMTP password field now has "password" type.
* Changed: SMTP password field does not display real password at all when using constants in `wp-config.php` to define it.
* Changed: Escape properly all translations.
* Changed: More helpful test email content (with a mailer name).