Foros del Web » Programando para Internet » PHP »

excepciones en envio de email

Estas en el tema de excepciones en envio de email en el foro de PHP en Foros del Web. Hola a todos. Estoy realizando el envio de e-mail a un usuario que se registra y a la hora de implementar los bloques try,catch me ...
  #1 (permalink)  
Antiguo 23/07/2013, 16:25
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
excepciones en envio de email

Hola a todos.

Estoy realizando el envio de e-mail a un usuario que se registra y a la hora de implementar los bloques try,catch me estas surgiendo varias dudas.

Código PHP:
Ver original
  1. require("../../PHPMailer_v5.1/class.phpmailer.php");
  2.         $mail = new phpmailer(true);
  3.  
  4.         try{
  5.             $mail->Mailer = "smtp";
  6.             .
  7.             .
  8.             .
  9.             $resultado = $mail->Send();
  10.  
  11.             $intentos=1;
  12.             while((!$resultado) AND ($intentos<5)){
  13.                 sleep(5);
  14.                 $resultado = $mail->Send();
  15.                 $intentos++;
  16.             }
  17.             if(!$resultado)
  18.                 {throw new Exception('el e-mail no se pudo enviar.');}
  19.         }
  20.         catch (phpmailerException $e)
  21.             {
  22.             $err = $e->errorMessage();
  23.             error_log($err,3,'../../error/error.log');
  24.             }
  25.         catch (Exception $e)
  26.             {
  27.             $err = $e->getmessage();
  28.             error_log($err,3,'../../error/error.log');         
  29.             }

Las dudas son las siguientes:

1) Quiero saber si el e-mail se ha mandado o no. Por eso ese "if(!$resultado)". Pero no se si es correcto hacerlo asi. O sea, podría suceder que no se produzca ninguna excepción pero el e-mail (por cualquier otro motivo) no llegue? (Por ejemplo, por un timeout). Si esto es correcto, como incluyo un mensaje con información sobre el por qué?

2) En el caso de no poderse realizar el envio del mismo, la idea es que el usuario reciba un mensaje de respuesta comentandole el asunto. Este mensaje...donde debo incluirlo?? "mi lógica" me dice que tanto en el bloque if anteriormente comentado como en ambos bloques catch ya que podrían darse cualquiera de esos 3 escanarios, no??

3) Si todo va bien, despues del e-mail realizo un INSERT con los datos del registro. Este insert, deberia incluirlo directamente al final del bloque try, cierto??
Deberia en este caso incluirlo dentro de otro bloque try para poder discriminar cuando ocurre un problema con el envio y cuando con la insercion??

Disculpad si todo este rollo parece un: "hacedmelo vosotros". Prometo que no es esa la intencion; simplemente es que me parece un asunto bastante delicado y es la primera vez que utilizo excepciones, de ahí las dudas.

Un saludo y muchas gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 24/07/2013, 04:25
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: excepciones en envio de email

Por favor, nadie me puede decir que estructura deberia seguir??

Gracias.

Etiquetas: email, excepciones, registro
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 20:33.