Saber si la funcion mail() de php está disponibl

uplink

Buenas.

Se que en los hosting de pago está disponible 100 % seguro, pero por si por cualquier razón no lo está, no quiero que muestre basura cuando éste no funcione del tipo:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\dental1\send_mailing.php on line 27

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\AppServ\www\dental1\send_mailing.php on line 36

con un:

if(mail) blablabla... me muestra esa basura.

Entonces necesitaba alguna función que me dijera si está operativa la funcion mail().

Espero haberme explicado con claridad.

Gracias de antemano.

erdanblo

Pon una @ antes de la llamada a la función, eso quita los mensajes de error.

Para saber si ha mandado o no el mail correctamente:
http://es2.php.net/manual/es/function.mail.php

Valores retornados

Devuelve TRUE si el correo fue aceptado satisfactoriamente para su envío, o FALSE de lo contrario.

Es importante notar que solo porque el correo sea aceptado para su envio NO quiere decir que el correo realmente vaya a llegar a su destino planeado.
uplink

Gracias por la respuesta, pero sigue mostrando basura :(

Saludos!

Soltrac

Agh es una pena, no se si en PHP se podrá hacer...pero en cualquier otro lenguaje tienes los típicos try...catch para el manejo de errores.

Anda, en #6 estaba lo q yo decía, estaba claro, con eso de la orientación a objetos de PHP5 estaba seguro de q lo ponían.

LOc0

Podrías probar con http://es.php.net/error_reporting pero no sé si es exactamente lo que necesitas.

Salu2 ;)

PiradoIV

Con PHP5 puedes manejar excepciones ( http://es.php.net/try ) y para ver si la función mail (u otra) está disponible, siempre puedes crear un php que tenga simplemente:

<?php
phpinfo();
?>
uplink

chicos, muchas gracias por la respuesta.

La idea no es saber si el servidor soporta la funcion mail o no, sino saberlo en tiempo real. Si tu que se cae el servicio. Pues prefiero mostrar una frasecita como "servidor de correo no disponible momentaneamente", a que muestre basura y asuste a mi cliente.

Pero bueno, cuando la web esté colgada estará operativa la funcion mail, pero por hacer elegantes las cosas jeje, que la gente se asusta con facilidad.

Gracias!!!

uplink

mmm, creo que con bloques try catch me vale, no había caido jeejej y mira que los tento mamaos de java xD

Saludos!!

erdanblo

#4 Desde septiembre tocando C# y se me olvido por completo Try Catch xDDD

En fin, que poco me gusta programar.

willsmith

Para que la funcion mail() funcione tienes que instalar un servidor de correo y configurar el php para ese servicio sino esta no funciona.

En todo caso lo unico que se puede saber es si esta activada o no la funcion pero esta puede estar activa y no funciona devido a lo que comento al principio

Usuarios habituales

  • willsmith
  • erdanblo
  • uplink
  • PiradoIV
  • LOc0
  • Soltrac