WordPress emails can be a fickle thing. When you use WordPress’ mail functions, there is always a chance that your emails will land in the intended recipients spam folder or worse yet not be sent at all.
If any or all of the emails aren’t being sent out. Please test to see if your emails are being sent properly. You can do this using a plugin like Check Mail:
If your emails aren’t working, you can try using an email marketing server like MailJet or MailChimp’s Mandrill to sent them out. These get around WordPress issues by not relying on WordPress to send out the emails.
Or you can use the PHPMailer settings:
All email providers have spam filtering tools which allow them to determine if your email is likely to be spam. They consider a long list of criteria when judging but each spam filter functions differently, and “passing” scores are typically determined by individual servers. This means that an email could pass through Google’s spam filter without problems, but then get flagged as spam by Yahoo’s spam filter and never even enter the users spam box. The detailed inner workings of these spam filters are kept secret to keep them out of the hands of spammers. However, from what we do know, some spam filters will flag an email if anyone with the same IP has sent spam in the past so if one person on a server has sent out spam or a sign of abuse it can trigger spam catching databases which will make your email delivery doubtful. On shared WordPress hosting, your website could be sharing the same server IP address with several other websites. There are countless other factors that are considered by spam catching algorithms.