wp_mail doesnt work inside transition_comment_status
* UPDATE * I have placed this function before the prev code // define the wp_mail_failed callback function action_wp_mail_failed($wp_error) { return error_log(print_r($wp_error, true)); } // add the action add_action(‘wp_mail_failed’, ‘action_wp_mail_failed’, 10, 1); Which helped me track the problem (using headers wrong). I share this in the hopes this helpes anyone while debugging wp_mail()