How can I send emails with drupal_mail() and hook_mail()?
Debugging such kind of eMail issues can sometimes be challenging.

Consider the 3 Modules to Help you Debug Emails in Drupal 7. Here is a quote from it:


  Problems can exist in multiple areas; like Drupal itself or your mail server. So when an email issue arises you first need to check and see if Drupal is generating emails and then make sure your mail server is sending the emails. Luckily in Drupal there are a few modules that can lessen the pain of debugging emails.


These are the 3 modules/steps mentioned on that link:


Intercept Emails Using Devel.
Log Emails Using Mail Logger.
Re-route All Emails Using Reroute Email.


PS: Debugging Drupal emails contains another checklist with 8 possible reasons about what may be the problem.