Problemas para correlacionar los registros SMTP en IIS con la aplicación .NET

Tenemos una aplicación web que envía correos electrónicos (quién no).

Recientemente implementamos algo donde un cliente puede enviar un cuestionario a sus clientes. Puede haber miles enviados a la vez. (no te preocupes, no es spam. No se vende nada y son solo un montón de preguntas)

Nos encontramos con problemas en los que recibimos una gran cantidad de rebotes por muchas razones diferentes, la mayoría de las cuales, creo, son simplemente una dirección de correo electrónico incorrecta o errores de buzón lleno. La empresa para la que trabajo está preocupada de que se deba a algo que hemos organizado.

La única forma que tengo para el diagnóstico es ir a los archivos de registro de los archivos SMTP grandes y buscar la dirección en cuestión. No tengo forma de saber cuántas veces ocurrió un error, si hay errores que podemos evitar, etc.

En este momento, registro el correo electrónico que se envía, pero una vez que va al SMTP, pierdo cualquier tipo de contexto. Supongo que lo que estoy preguntando es, ¿hay alguna técnica o un mejor servidor SMTP o algo que podamos utilizar que nos ayude a comprender mejor nuestros datos SMTP, e idealmente puedo usarlo para vincular cuando lo envié en código?

Actualmente uso el IIS SMTP estándar en Windows Server 2008 y la aplicación .NET no tiene nada especial aparte de .NET 3.5. Estoy abierto a nuevas herramientas de servidor SMTP si es necesario.

preguntado el 22 de mayo de 12 a las 13:05

"una vez que va al SMTP, pierdo cualquier tipo de contexto": ¿no tiene el ID del mensaje SMTP? ¿Supongo que se registrará con algún error? Puede IIRC configurar IIS para iniciar sesión en una base de datos que luego podría consultar, pero aquí siempre habrá un componente asíncrono. También puede probar una solución de terceros, por ejemplo matasellosapp.com quién le responderá con una solicitud web de rebotes y errores, etc. -

No hay una identificación de mensaje SMTP como veo con los registros... Puede configurar una base de datos pero tampoco está usando una identificación. Voy a investigar un poco en postmarkapp.com. Parece prometedor -

Sin saber mucho sobre esto, ¿podría agregar un sumidero de eventos SMTP para capturar el ID del mensaje RFC822 a medida que pasa a través del servidor SMTP y usarlo para una correlación posterior? support.microsoft.com/kb/894286 -

1 Respuestas

Puede configurar System.Net.Mail.MailMessage.DeliveryNotificationOptions a DeliveryNotificationOptions.OnFailure. Esto enviará un correo electrónico a la dirección "De" cada vez que falle la entrega.

FYI, ha habido informes de que DeliveryNotificationOptions solo puede funcionar con el servidor de Exchange. Con otros servidores de correo, es posible que deba configurar el valor SMTP "Devolver recibo a" directamente.

contestado el 23 de mayo de 17 a las 13:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.