That error is shown when operating system reports an error sending an email.
If you check includes/mail.inc you can see:
if (empty($message['send'])) {
$message['result'] = NULL;
}
// Sending was originally requested and was not canceled.
else {
$message['result'] = $system->mail($message);
// Log errors.
if (!$message['result']) {
watchdog('mail', 'Error sending e-mail (from %from to %to).', array('%from' => $message['from'], '%to' => $message['to']), WATCHDOG_ERROR);
drupal_set_message(t('Unable to send e-mail. Contact the site administrator if the problem persists.'), 'error');
}
}
$system->mail
usually maps to the DefaultMailSystem. This function just calls mail PHP function. This PHP function uses the system mail agent to deliver the mail, and returns what the mail agent has returned. That means that PHP is not in charge of sending the mail, just deliver it to the system mail agent.
So, if you receive the mails probably is a system issue: system reports an error to PHP but actually mail is sent. Check your PHP logs, mail agent logs (sendmail or postfix are very popular) to see possible warnings or errors.