a función @PHP mail () devuelve false, pero sin error

Estoy usando la función php's mail () para el simple proceso de enviar por correo electrónico la entrada de un formulario de contacto a la persona respectiva. Lo extraño es que la forma siempre se usa para procesar los correos electrónicos, pero un día todo se detuvo, ahora la función devuelve falso, pero no da ningún error.

El sitio está en un host compartido. Cuando se les preguntó sobre esto, me recomendaron usar el relé smtp xx.xxx.x.xxx

Corríjame si estoy equivocado, pero la función mail () no proporciona disposiciones para esto, ¿verdad? ¿Seguramente depende de la máquina HOST tener sus relés configurados correctamente?

Mi pregunta es esta: ¿Parece esto un error con la configuración del host, o es mi código? Aquí hay una muestra del código de correo que he usado:

$to = "[email protected]"; //to who?
$subject = "Website Contact: $mysubject";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "From: $fname<$email1>\r\n";
$headers .= "Reply-To: $email1\r\n";
$headers .= "Return-Path:$email1\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "Content-Transfer-Encoding: quoted-printable\r\n";
$msg2 = nl2br($msg);

$send = mail($to, $subject, $msg2, $headers); //process mail

if(!$send):
  //error stuff here
endif;

Muchas gracias, Simon

@ eisberg - Uso un controlador de errores personalizado como este:

//error handler function
function customError($errno, $errstr){
$err = "\n".date('Y-m-d H:m:s')." Error: [$errno] $errstr";
$fh = fopen("errlog.txt", 'a+');
fwrite($fh, $err);
fclose($fh);
}
set_error_handler("customError", E_ALL);

¿Eso significa que necesito cambiarset_error_handler("customError", E_ALL); aset_error_handler("customError", -1); ?

Respuestas a la pregunta(6)

Su respuesta a la pregunta