Estoy utilizando la función de correo de php() para el simple proceso de enviar por correo electrónico la entrada de un formulario de contacto a la persona correspondiente. Lo extraño es que la forma siempre se utiliza para procesar los correos electrónicos, pero un día todo esto se detuvo, ahora la función devuelve falso, pero no da ningún error.PHP mail() función que devuelve falso, pero sin error
El sitio está en un host compartido. Cuando se les preguntó acerca de esto, recomendaron usar el smtp relay xx.xxx.x.xxx
Corregirme 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: ¿Esto parece un error con la configuración del host, o es mi código? Este es un ejemplo del código electrónico que he utilizado:
$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 manipulador personalizado así:
//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);
Would eso significa que necesito cambiar set_error_handler("customError", E_ALL);
a set_error_handler("customError", -1);
?
prueba ** error_reporting (-1); ** encima de tu código. Espero que recibas un mensaje útil. Fuente: http://php.net/manual/en/function.error-reporting.php – eisberg
@eisberg - Tengo una función de error personalizada registrando todos los errores (E_ALL) en el archivo, ¡y todavía nada! Recoge los errores más delicados, pero todavía no hay nada relacionado con mail(). – SimonDowdles
'E_ALL' no es' -1' en todas las versiones de PHP :-) – eisberg