Mail not sent from CiviCRM via SMTP or mail()
I think I found the issue. If your CiviCRM is installed via buildkit there is a file ~/buildkit/app/civicrm.settings.d/100-mail.php which sets the CIVICRM_MAIL_LOG to /dev/null. This doesn't allow Civi to communicate to MTA (Mail Transfer Agent).

The first solution is to comment out 

//if (!defined('CIVICRM_MAIL_LOG')) {
//  define('CIVICRM_MAIL_LOG', '/dev/null');
//}


Further, because this is a dev/testing environment, you may want to log your emails while you send them. In your civicrm.settings.php add the following lines.

if (!defined('CIVICRM_MAIL_LOG')) {
define( 'CIVICRM_MAIL_LOG', 'log_path/mail.log');
}
define('CIVICRM_MAIL_LOG_AND SEND', true);


CIVICRM_MAIL_LOG_AND SEND allows CiviCRM to log as well as send the emails.