"Why is my client's site not sending out emails..!?"
One reason for this is that the host has not configured the server properly to use PHP mail() function correctly. To fix this, you will likely have to call support, and we all know how much fun it is to call web hosting support!
Another reason is because the PHP mail function has been abused so much it is now a red flag for email providers.
Yet another reason is the complicated rules that are needed to be followed in order to avoid being flagged as spam.
I'm sure I am leaving out a few more reasons but you get the gist.
So what is the solution?
Behold.. I Give You.. "External Email Services"
I have had great success with emailing services. You can use them for just simple contact forms, but I find them essential for e-commerce sites. Even a basic e-commerce can send out a good deal of emails to the owner of the site and to the shoppers.
These services have many benefits like tracking opened emails and links, managing bad or dead emails and most of all reliability.
A side benefit of sending emails through a 3rd party is that you are taking some of the load off of the website. This usually results in better performance.
Listed below are the solutions I have used over the years:
- MailGun: 10,000 emails a month free. (Protocols: API or SMTP)
- SendGrid: 12,000 emails a month free. (Protocols: API or SMTP)
- Amazon SES: 62,000 emails a month free. (Protocols: API or SMTP)
- SparkPost: 100,000 emails a month free. (Protocols: API or SMTP)
- MailGun (API): https://wordpress.org/plugins/mailgun/
- SendGrid (API): https://wordpress.org/plugins/sendgrid-email-delivery-simplified/
- Amazon SES (API): https://wordpress.org/plugins/wp-ses/
- SparkPost (API) https://wordpress.org/plugins/sparkpost/
These Plugins work with the core of wordpress and usually have no problems working with most plugins like Gravity Forms, Contact Form 7, Woocommerce and pretty much any plugin that sends out any type of email.