Foros del Web » Programando para Internet » PHP »

Gestionar errores de envío al usar función de envío MAIL

Estas en el tema de Gestionar errores de envío al usar función de envío MAIL en el foro de PHP en Foros del Web. Quiero mandar formularios por correo a través de PHP, pero no sé cómo capturar errores de envío y por tanto gestionarlos para notificar al usuario ...
  #1 (permalink)  
Antiguo 22/03/2004, 04:55
 
Fecha de Ingreso: marzo-2004
Mensajes: 13
Antigüedad: 20 años, 1 mes
Puntos: 0
Gestionar errores de envío al usar función de envío MAIL

Quiero mandar formularios por correo a través de PHP, pero no sé cómo capturar errores de envío y por tanto gestionarlos para notificar al usuario que el correo no ha sido enviado correctamente en caso de no darse el envío.

Alguien me puede facilitar un código o información al respecto?

Muchas gracias!
  #2 (permalink)  
Antiguo 22/03/2004, 07:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La función nativa de PHP para enviar e-mail (mail()) tan sólo te indicará si consiguió entregar el e-mail al MTA (transportador: servidor SMTP o el que se use ..) pero sólo devuelve un "true/false" si consiguió hacer esta operación o no exitosamente.

Para tener algo más de control sobre el error deberías conectar directamente al servidor SMTP para entregar el e-mail directamente .. así podrías obtener algún código de error más claro.

Puedes usar classes para envio de e-mail por SMTP directo (sin usar mail() de PHP) como por ejemplo:

PHP Mailer
http://phpmailer.sourceforge.net
(además de controlar mejor los mensajes de error en el envio permite enviar datos adjuntos comodamente . .e-mail multiparte en HTML y/o texto simultánemente .. usar servidores SMTP que requieran autentificación .. etc.)


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 22/03/2004, 09:18
Avatar de bhonox  
Fecha de Ingreso: julio-2002
Ubicación: Rengo-Viña del Mar-Stgo
Mensajes: 1.213
Antigüedad: 21 años, 9 meses
Puntos: 0
yo lo q uso para q no se caiga mi programa es lo siguiente
Código PHP:
if (@!mail(....)){
   echo 
"existe error en el envio";
}
else{
      echo 
"mail enviado correctamente";

__________________
Atte
Real BHONOX

Programador Cervecero! :borracho:
Lenguajes vengan a MI!!
  #4 (permalink)  
Antiguo 22/03/2004, 14:11
 
Fecha de Ingreso: marzo-2004
Mensajes: 13
Antigüedad: 20 años, 1 mes
Puntos: 0
ya veo...

parece más técnica la opción de Cluster, pero creo que la opció del IF se ajusta más alo que busco, ya que no se trata tampoco de que quiera demasiado control sobre ello.

Supongo que con el método IF ya controlo el "true" o "false" que mencionabas, no cluster?

Muchas gracias!
  #5 (permalink)  
Antiguo 22/03/2004, 14:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si, tal cual el ejemplo que puso bhonox .. La función mail() devuelve un "boolean" (verdadero/falso, true/false, 1/0 ...) según pueda o no entregar el e-mail al MTA .. Por ejemplo .. si está "apagado" el servidor SMTP por el cual pretendes enviar el e-mail ahí mail() te responderá un "false" (y un mensajito de error que si usas @ delante de la función no veras y podrás controlar mas "amigablemente" con el IF).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:36.