In my case it was that my web hosting company was blocking my emails. Let me explain.
When I created my WordPress install I used my personal email to create the main user account. That email is a GMail email address like, “[email protected]”. That’s all well and good except if the email is not hosted on your domain.
When a new user signs up, WordPress uses the sign up email of the admin account to send them the login and registration emails. To actually send the message from my personal email, WordPress would need my actual GMail credentials. Since I have not supplied that information, it spoofs the email. It sets the sender as my personal email but it’s actually coming from server.dreamhost.com. This is not necessarily a bad thing. It let’s new users see and reply to my real email (instead of the hosting company server) when they sign up and for questions but in the same way this also let’s spammers send emails to users using fake emails.
A few years ago, in an attempt to block spoofed emails, my hosting company started to require that all emails sent from it’s servers use real email accounts. This used to work but is now blocked. My WordPress installs were still expecting the old behavior. Now before sending the email, my hosting company checks if the email is hosted by them and also if it’s from the same domain it’s being sent from. More info.
The solution is to use a valid email account that is hosted at the same domain as the WordPress install and not a personal email. To check or change this:
- Login to WordPress using the administrator account
- Go to settings
- Check that the email is a real email that you have setup at your domain. Forwards may or may not work. Check with your hosting company.
- Verify by creating a new user account and seeing if you receive the registration and login emails.
WordPress Settings Screen:
WPMU Setting Screen:
When you’ve changed the admin email of a WPMU site it sends you a confirmation email and asks you to confirm the change.