I've had the same problem on server 17. The mail service goes in and out. To work around this I try to use the client's mail service if mail() is down.
Code:
$em_status = confirm_email($user_email, "Sign Up Verification", $confirm_text, $confirm_link);
if(!$em_status) {
$confirm_link = "http://greenfloyd.site90.com/_roller.private.php?action=3&confirm_key=" . $confirmKey;
$confirm_link = rawurlencode($confirm_link);
$message = "Sign Up Verification: If this is your submission to the greenfloyd Roller~Poster, please click this VERIFY link: $confirm_link";
echo $confirm_link . "<br>";
echo "<p>For some reason internal Email failed. Please try this \"Plan B\" link instead, it will send an unformatted email to you through your mail service. Then, from your inbox, click the \"VERIFY\" link in the message to complete the verification process.<br> Thank you.<hr><a href = 'mailto:".$user_email."?subject=Roller~Poster_Sign_Up&body=".$message."'>plan B</a><hr><a href = 'http://greenfloyd.site90.com/_roller.readerX.php'>[Return]</a><hr>";
} else {
echo "<p>To activate your new account a confirmation email has been sent to you. Please click the link in that email to complete the verification process. Further instructions will be displayed on the confirmation page... enjoy the ride.<hr><a href = 'http://greenfloyd.site90.com/_roller.readerX.php'>[Return]</a><hr>";
}