El flujo sería mas o menos el siguiente:
![Flujo de estados de emails Flujo de estados de emails](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUmWVvq5xTXRHJKvUoG53GKpbPOE69KuZk4SlFbWx4gygPzNJEABtt9KIKyS_WzSAcE9JLBVQg6VYNHSpez4ny8T7jdDXa2yHzVDTECU7XQlKzrL_UuUqYfEix0R4MD8vtEzDiAopAQ/s1600/img1.jpg)
Pongamos por ejemplo que planificamos un envío de un Email, simplemente lo creamos.
En este momento los valores serían:
StateCode=0 (Abierto)
StatusCode=1 (Borrador)
Ahora bien, supongamos que le damos el botón de "Enviar". Al hacer eso, el CRM simplemente marcará el correo electrónico para reaizar el envío. Los estados ahora serían:
StateCode=1 (Completado)
StatusCode=6 (Envío pendiente)
Luego lo que ocurre es que el servicio asíncrono de CRM (CRMAsyncService) ejecutará el evento "BackgroundSendEmail" que lo que hace es buscar todos los emails en "Envío pendiente" (statuscode=6) para marcarlos para que el Email Router haga efectivo el envío. Despues de ejecutar este evento los estados serían:
StateCode=1 (Completado)
StatusCode=7 (Enviando)
Lo que ocurre ahora es que el Email Router busca todos esos correos electrónico en estado "Enviando" para intentar entregar los mismos al servidor que tenga configurado. En caso de fallar, volverá al estado "Envío pendiente" para intentarlo enviar de nuevo. En caso de ir correctamente el estado quedaría así:
StateCode=1 (Completado)
StatusCode=3 (Enviado)
Espero les sirva, cuando le damos al "Enviar" desde el CRM ocurren muchas cosas por detrás...
abrazo.