2011-09-01 19 views

Respuesta

16

para responder a su segundo punto, sí, todo lo que puede hacer es asumir que es un éxito - lo que significa que recibió el mensaje al servidor y el servidor aceptó, a menos que obtenga una excepción.

probablemente ya saben el resto de esto, pero por si acaso ...

A partir de ahí, el correo electrónico podría perderse y no entregados cualquier número de maneras. Su servidor puede aceptarlo y decidir no enviarlo, o aceptarlo y perder potencia antes de fallar. Puede ser bloqueado por un filtro de correo no deseado en el camino, etc.

Puede pensar que un correo electrónico es similar a una postal normal, ya que pasa por varias manos entre el remitente y el destinatario. Desde su código, solo puede confirmar que llegó al servidor SMTP que está utilizando para enviar, que es similar a entregarlo a un cajero en la oficina de correos. No sabe (o necesita saber) cómo se enruta el mensaje desde allí. podría ser por aire, tierra o paloma mensajera. Estás fuera de la ecuación: no necesitas saber cómo se envía, solo que confías en que saben cómo enviarlo. (Lo mismo puede decirse de un correo electrónico.)

Si necesita confirmar que el destinatario lo abrió, hay formas de incrustar una imagen en un mensaje HTML en su servidor y rastrear en sus registros cuando se accede a esa imagen , etc (Google seguimiento de correo electrónico y el correo electrónico de seguimiento abierto)

por otro lado ...

Si el servidor rechaza, entonces no obtener una respuesta del servidor en una manera de hablar - no debería ser una código de error y una descripción en el error, que puede utilizar para solucionar problemas por los que no lo hizo, o utilizar el manejo de errores para probar otra ruta, etc.

+2

+1: junto con el "no necesita saber cómo se envía" debe haber una nota que explique que aunque el correo electrónico * normalmente * se cancela bastante rápido, varios controles de correo no deseado y la configuración del servidor pueden retrasar un correo electrónico en cualquier lugar entre minutos y días. – NotMe

+0

@ Chris Lively - ¡Buen punto! – David

+0

a veces los servidores devuelven su identificación de mensaje con 250 ok ... por lo que es malo no ver la respuesta exitosa ...... –

1

Usted asume que fue un éxito a menos que se lanza ... aunque el éxito en este caso sólo significa que fue aceptada por el servidor de correo, todo lo demás corresponde entonces al servidor ...

SI usted quiere un poco de control puede usar SendAsync y enganchar el evento SendCompleted ...

Cuestiones relacionadas