Hi Kate. I know that email deliverability can be a hard thing. I want to point out a few things that might be helpful, but may only end up being more confusing. I'll do my best.
Depending on Moodle version, the sender email address of new user account sign-ups may differ, depending on Moodle version and a number of settings in Moodle.
One very common problem is that the sender of the email (the "FROM" header in the registration email) often has an email domain that is not permitted to send email on behalf of the domain from your Moodle server's IP address.
Example:
Site admin account email address is: moodleadmin@example.com
Lets pretend that example.com is an email service, like outlook.com or gmail.com. These types of email service providers have set up policies that prohibit email from being received if the IP address where the email was sent from is not trusted by policy. The policy I am talking about consists of: domain keys (DKIM), SPF, and DMARC. Those are some technical terms and I am sorry for that
. Bottom line: spam and phishing prevention.
So how can you make all of these email services and servers on the internet trust your IP? You can't. The sender of the email from Moodle must utilize an email domain that has all of these policies set up.
In my experience, you have two options:
1) Use an authenticated SMTP user with an email service provider (noting that most of the free ones will have sending limits per day). This way the authenticated outbound email from Moodle is authenticated and trusted.
2) Set up DKIM, SPF, and DMARC policies for the email domain from which your Moodle email is sent. This is often only an option where you have an IT department's resources.
So how do you know from who (the FROM address) the email is getting sent? It depends. In my experience it either comes from the main site admin's email address, or the contact email address specified at Site administration / ▶︎ Server / ▶︎ Support contact.
If your email seems to be getting sent FROM the likes of: gmail.com, outlook.com, yahoo.com, or any other type of email service like that, then this is likely the problem. To recap: those services have polices that don't allow any old IP to deliver email on behalf of their domain.
That is the best that I can explain it for now. In most cases for small-scale Moodle sites, I think folks will have the best luck if they use some type of external email service provider, which can provide you with authenticated smtp username/password to use in the email message outputs setting.
Good luck!!
Jamie