Two-Factor stopped working since WordPress 6.9
-
Hi Solid Security Team,
Since I updated to the latest version of WordPress, I have not been able to login using my email method for Two-Factor authentication. This is what I get from your plugin:
Important notices from Solid SecurityFailed sending Two-Factor Email notification.Could not instantiate mail function. (wp_mail_failed)ModuleNotification CentreDescriptionSending Two-Factor Email FailedDec 05, 2025 9:16 AM – 52 seconds ago
UPDATE: Just realised this is not a Solid Security issue. Looks like there has been changes to WordPress mail() function which has now caused emails to stop being sent.-
This topic was modified 6 months, 1 week ago by
poppydev.
-
This topic was modified 6 months, 1 week ago by
-
I was wrong with this.
I have done a few tests, and checked with another site using WordPress 6.9
My emails where using a forwarder rather then a dedicated mailbox.
Changed this to a dedicated mailbox and still not getting anything through when using the email method to get the authentication code.
Same for another site. Before the WordPress recent update it was working. Updated this and emails from your plugin have stopped working. Same error as above. Even when I create a dedicated mailbox for this they still don’t come though.
To rule out any mailboxes quarantining emails I did blanket tests to the email I use on your plugin when sending authentication responses and they come through when I email from an external resource, or from the host mailbox . This rules out any issues from the email itself.Any ideas to why this isn’t working. Using Two-Step authentication app works fine, just not emails.
Hi,
I have confirmed a reproducible issue affecting Solid Security’s email-based 2FA after updating WordPress to version 6.9.Summary of the Issue
After updating to WordPress 6.9, Solid Security’s email authentication / 2FA emails no longer send, even when:
- The domain has correct SPF, DKIM, and DMARC
- The mailbox exists and receives normal emails
- WordPress core emails (password reset etc.) work
- Other plugins using SMTP (e.g., Piotnet Forms) send emails successfully
- The hosting provider (Fasthosts) confirms no mail blocks or filtering
This issue occurs across multiple websites and is isolated only to Solid Security’s 2FA email method.
Technical CauseWordPress 6.9 includes a major update to PHPMailer, introducing stricter RFC compliance for sending emails.
Specifically:1. The “From” address must match the authenticated mailbox
PHPMailer now rejects or blocks emails when the plugin sets:
- A dynamic From address
- A From address that does not match the authenticated mailbox
- A From address without explicit
$phpmailer->Sender
Solid Security’s 2FA email currently relies on WordPress’ default
wp_mail()without setting an aligned, authenticated From address.2.$phpmailer->Senderis now required for many hostsWordPress 6.9’s PHPMailer enforces that the Sender address must be explicitly set.
Solid Security does not set this, so mail hosts (including Fasthosts, SiteGround, IONOS, GoDaddy, Hostinger, etc.) reject the message entirely.3. Other plugins work because they set proper SMTP headersForm builders and SMTP plugins correctly set:
- The authenticated sending mailbox
- The From address
- The Sender header
- SPF/DKIM-aligned headers
Solid Security’s 2FA email does not, which is why only this feature fails after WP 6.9.
Why This Is a Solid Security Compatibility BugThis is not a hosting, server, WordPress, or user configuration issue.
It is a plugin-level compatibility issue caused by Solid Security continuing to rely on older PHPMailer behaviour that WordPress 6.9 no longer supports.
To restore functionality, Solid Security needs to:
$headers[] = ‘From: “Site Security” [email protected]‘;
$phpmailer->Sender = ‘[email protected]’;
Or provide a setting to force a specific From/Sender mailbox.-
This reply was modified 6 months, 1 week ago by
poppydev.
Hi @poppydev,
Interesting reading. The plugin includes a FROM EMAIL setting (Security > Settings > Notifications) which allows you to set a custom from email address. Default value is empty which means the WordPress default from email address will be used ([email protected]).
But if I understand correctly this is probably not the solution to make the 2FA email work again?
Can you confirm this?
+++ To prevent any confusion, I’m not SolidWP +++
Thank you for getting back to me. Somewhat quicker then Solid Security themselves :/.
I have a custom email (Security > Settings > Notifications) setup for 2FA email authentication and been working fine up until WordPress 6.9. Nothing has changed in Solid Security settings, or had any plugin updates since WordPress 6.9.
This is effecting 18 of our websites so far. The only way in at the moment is by the authentication app on a mobile device. Just need the email method to work again as this was easier for my team to access these sites, and for me to monitor access.
Based on the changes made to WordPress’s wp_mail() in 6.9, even with a dedicated mailbox by the host or Office 365, I am unable to receive anything from Solid Security. Even file scan change reports do not come through anymore.
Just a shame the Solid Security team take ages to come back to FREE user support. I can rule this out as a non isolated issue as it use to work before WordPress 6.9 update, and is effecting all sites not just one.-
This reply was modified 6 months ago by
poppydev.
Hi @poppydev,
Ok, so it seems we have now moved from a 2FA email only issue to a Solid Security email issue.
I updated some of my WordPress test envs to 6.9 and all emails are still being send (and received). In other words, I don’t seem to be able to reproduce the issue (in my hosting env).
So whatever email issue you have it must be specific for your hosting env(s).
I did my own research (to understand better the changes made in WordPress 6.9 related to sending emails) and then did some googling. Found a really interesting article which I think is worth reading:
Very interesting read – thank you.
Very silly of WordPress updating the core function that effects the mailing system, more so if thousands of plugins rely on it for admin or mailer responders.
They do need to resolve this in a patch as most users might rely on this method of contact by security plugins and or internal communication if logging errors etc. Forcing users to install additional plugins is just a poor excuse, and ads bloat. Or they need to setup SPF policies with the host (which I would be surprised if not already).I know my mail boxes are setup correctly for each domain, both by the host and office 365. The issue I have is I am using a forwarder to another email from my host mailbox to my 365 mailbox. All have their SPF setup correctly for all domains or I wouldn’t have been getting emails at all in 365.
So the best solution for me (and possibly many others) is this
function use_no_sender( $phpmailer ) {
$phpmailer->Sender = “”;
}add_action( ‘phpmailer_init’, ‘use_no_sender’ );
It now allows me to receive emails from WordPress when using Solid Security and have a custom email for the authenticator. Same goes for other plugins I use that send reports. These stopped until the above was added in a function.php.
I know many cannot do this out of the box but Solid Security should have an option to allow this to be added if users are not receiving emails all of a sudden, rather then adding additional plugins or expecting someone to know where this goes.
I can assume WordPress have had a large amount of complaints since this has been removed. I get they have made it secure but not all hosts/plugin developers have catered for this change yet, or aware of it effecting them.
Nice to see them caring but at the same time also being careless.-
This reply was modified 6 months ago by
poppydev.
Hello @poppydev,
Thank you so much for taking the time to document your troubleshooting steps and for the detailed testing across multiple hosting environments! This has been extremely helpful in helping us confirm the issue.
We’ve been reviewing this internally, and we can confirm that WordPress 6.9 introduced significant changes to PHPMailer that affect any plugin relying on the older wp_mail() behavior, including Solid Security. The changes enforce stricter RFC compliance (particularly around the From and Sender headers) and some hosts now reject the emails unless those headers match an authenticated mailbox. But because Solid Security currently lets WordPress handle email headers automatically, this has led to 2FA and notification emails failing on some hosts.Our dev team is actively investigating the issue now, and early indications are that we may implement a similar logic to what you’ve outlined. But, we will need to investigate this deeply to fully understand the scope and its impact.
Also, we hear you regarding response times! We’re a small team supporting both free and paid users, and while we work hard to reply as quickly as possible, we know we can do better in the free forums. I actually started my support work in the free forums, so I know it’s easy for posts to slip off the radar. You’re always welcome tag me or the team in your future posts so we can be alerted via email, too.
Thank you again for flagging this, and we’ll update you here as soon as I have more news from the team.
Hi @poppydev,
Quick update from us:
We’d like to check whether your From Email field in Solid Security Notification Center is set to a custom email address. If so, please try clearing that field entirely and see if the issue persists. Since WP 6.9 now sets the Sender to match the From address automatically, a custom From Email that isn’t authorized by the hosting server may cause the send failures.
Also, since you could receive WordPress core emails (like password reset), could you check the From address of those emails and compare it to the From address Solid Security is using?
We are still evaluating how Solid Security should handle the Sender header going forward, and getting this information would help us narrow down the issue.
Looking forward to your reply!
Hi there, this is correct for the custom email. I wont share it on here for security reasons but see screenshot where this is added:
https://www.awesomescreenshot.com/image/57906581?key=d9c081e74f723f2c5796b83dde401994
As before my from address is a forwarder in the host, then sent to our 365 outlook inbox which both are setup correctly to communicate and receive emails. It worked before but stopped after WordPress 6.9. Maybe there is something I am missing in the hosts DNS setup. Will have to investigate further.
Either way the code above that I used on all website functions.php has allowed my emails that didn’t come through by Solid Security to work again. Now this might have been the same issue with other plugins as I have noticed new notification emails I have never seen before since this code was applied.
-
This reply was modified 5 months, 4 weeks ago by
poppydev.
Hi @poppydev,
After a review by our dev team, we determined that this case is a WordPress 6.9 compatibility issue affecting the core email system. Solid Security uses WordPress’s
wp_mail()API, so when WP 6.9’s stricter email handling causes issues, it affects any plugin using that API, not just Solid Security.Since this is a WP core email system issue rather than a Solid Security bug, we cannot provide a plugin-side fix. However, your workaround is the correct approach for this scenario.
Thank you for understanding, and let me know if you have further questions.
You must be logged in to reply to this topic.