Estoy usando Zend framework para enviar correo electrónico. Una vez que la configuración se ha realizado y el código escrito todo se reduce a una llamada:

$Mail->send($Transport)

¿Cómo puedo comprobar que este correo ha sido enviado correctamente? Leí en alguna parte que Zend Correo lanza una excepción, sino que otras personas han dicho en ocasiones no es el caso.

¿Cuál es la prueba de balas manera programática para asegurarse de que el correo ha sido enviado correctamente cuando se utiliza Zend_Mail?

EDIT: Cuando me refiero a enviado, me refiero a enviar al servidor SMTP.

  • Envía al servidor SMTP? o se envían a un MTA?

2 Comentarios

  1. 35

    Generalmente Zend_Mail producirá una excepción si hay algo mal en el send-proceso – pero esto depende fuertemente de la Zend_Mail_Transport_* ser utilizado.

    Aquí tiene dos opciones:

    • Zend_Mail_Transport_Sendmail (el valor predeterminado de transporte) se basa en mail(). Si mail() devuelve false, Zend_Mail_Transport_Sendmail lanza una Zend_Mail_Transport_Exception (no se puede enviar correo). El valor de retorno en sí no es muy fiable. Esto es lo que el manual dice acerca del valor de retorno:

      Devuelve TRUE si el correo electrónico fue aceptado para su entrega, o FALSE en caso contrario.

      Es importante tener en cuenta que sólo porque el correo fue aceptado para su entrega, esto NO significa que el correo va a llegar a destino.

    • Zend_Mail_Transport_Smtp envía el correo electrónico mediante el protocolo SMTP que está encapsulada en Zend_Mail_Protocol_Smtp. En este caso obtendrá un Zend_Mail_Protocol_Exception cuando algo no viola el protocolo SMTP (envío de correo sin dar la dirección de un remitente por ejemplo) o el servidor STMP informa de un error o los tiempos de conexión.

      Así que si no es la excepción se produce cuando habla con el servidor STMP, usted puede estar seguro de que el servidor remoto, al menos aceptó su correo electrónico.

    • Lo siento, leer por encima de su punto de enviar el correo electrónico a través de un servidor STMP – se puede omitir el punto 1 en mi respuesta.
    • Muy bueno +1, 😉
    • Me estoy poniendo de conexión agotado error cuando uso Zend_Mail_Transport_Smtp..Lo que puede ser la causa???
  2. 0

    Supongo que no. Si «enviar» error de que usted obtenga una excepción. Pero eso es sólo un cheque, que el send() función ha funcionado correctamente. Esto no significa que tiene el correo de envío.

    Supongo que la única manera de ensude el correo se entrega es para insertar un código de confirmación enlace inte el correo y hacer que el usuario haga clic en él.

    • me refiero a enviar al servidor SMTP no se compruebe que se ha entregado.
    • Que supongo que es suficiente que el Zend_Transport_SendMail() no lanzar una excepción 😉

Dejar respuesta

Please enter your comment!
Please enter your name here