Over 6 years ago I briefly wrote about trouble shooting failed emails in Subscribe2. And 6 years later I still get this same issued raised time after time.
So, I thought it would be good to write a step by step guide to how you might go about testing and trouble shooting.
So, to start with some assumptions. I’m presuming you are using WordPress and Subscribe2 and you are using current release versions. I’m also presuming that you have followed the installation instructions for Subscribe2 and that you do successfully get some emails from your blog, for things like registrations and comments (if you aren’t getting these either then you have a wider failure in sending emails and you need to call your hosting provider).
Now we can work on some steps to try to get things working:
- Firstly, visit the Subscribe2->Settings page in the WordPress administration area. If you see any error messages in the red box over the top of the screen you need to get those fixed.
- Have you checked for conflicting plugins and themes? Check the list of known conflicts and if that doesn’t help then disable all plugins except Subscribe2 and revert to a core WordPress theme (like TwentyTwelve or TwentyThirteen). Test again and see if Subscribe2 works. If it does then you have a conflict somewhere, re-enable your theme and then plugins one at a time testing after each and every step to find the conflict. It would help greatly if you could let me know about conflicts too so the list can be kept up to date.
- In Subscribe2->Settings change the drop down selector where it says “Send Email From:” to a user account name and choose an account with an email address that end with your blogs URL. For example, if your blog address is http://www.my-blog.com the account should have an email address like email@example.com. Subscribe2 will display a warning message if the account has a different email address. After making the change test everything again.
- Next step, are you using Subscribe2 in per-post or digest mode?
Digest mode sends a summary of posts made in a time period. The periodicity interval can be set by you but the event is triggered in the WordPress cron system.
- You need to check that the WordPress cron system is working. Install WP-Crontrol on your site and then visit Tools->Crontrol. Look at the “Next Run” times for events and in particular the subscribe2_cron event. If these are in the past then cron isn’t working. You might want to try adding
define( 'ALTERNATE_WP_CRON', true );to your wp-config.php file and see of that resolves the issue
Per-post mode sends posts at the time they are published (both live and scheduled). There are a few things that need checking and some of these apply to Digest mode too.
- In the Subscribe2->Settings page under the Email Settings tab make sure you have set the number of recipients per email to 1 (This is the default). Setting it higher than 1 sends a single email to groups of individuals and while this is a little more efficient it also looks a lot more like spam and is more likely to be blocked or filtered by anti-spam measures.
- In the Subscribe2->Settings page under the Registered Users tab make sure that you have not excluded any categories
- In the Subscribe2->Settings page under the Templates tab make sure that your templates are not empty
- Install an email logging plugin and then try sending a test email from the Suscribe2->Send Email page. Do the emails show in the log? Check the log again when you make a new post. If the emails are being logged then Subscribe2 and WordPress are generating the email and it is being blocked on the server, time to move to the next step.
- Speak with your hosting provider. Be patient with them. Ask them what restrictions or limitations they have in place on the sending of emails via the PHP mail() function. If they tell you it is not restricted ask them to check again, ALL hosting providers limit this function somehow otherwise they would be a spammer haven. Ask them exactly how the limit is applied and work with them to ensure your site remains within the restrictions. You may need an email queuing solution