2008-08-10 9 views
10

¿Alguien puede recomendar software o una biblioteca .NET que verificará si hay correos electrónicos devueltos y la razón del rebote? Recibo correos electrónicos devueltos en una cuenta pop3 que puedo leer en ese momento.¿Comprueba automáticamente los correos electrónicos devueltos a través de POP3?

Lo necesito para mantener mi base de datos de usuario libre de direcciones de correo electrónico no válidas y quiero automatizar esto (marcar al usuario como correo electrónico no válido).

Respuesta

5

He trabajado muchísimo en el manejo de correos electrónicos de rebote y hay diferentes tipos. Si quieres estar absolutamente seguro de que el correo electrónico que miras es realmente un rebote de un tipo específico, te recomiendo obtener un buen filtro. He trabajado con Boogie Tools y ha funcionado muy bien. Te permite saber qué tipo de rebote es, Difícil, Suave, Transitorio o si incluso alguien intenta darse de baja. Tiene un API múltiple que incluye .Net y me pareció bastante fácil trabajar.

2

Es bastante fácil de hacer con un TcpClient. Abra el servidor:

TcpClient tcpClient = new TcpClient(); 
tcpClient.Connect(POP3Server, POP3Port); 
NetworkStream stream = tcpClient.GetStream(); 

Leer el mensaje de bienvenida:

int read = stream.Read(inBuffer, 0, inBuffer.Length); 
string response = Encoding.ASCII.GetString(inBuffer, 0, read); 
if (response.IndexOf("+OK") != 0) throw new ...; 

Escribir nuevo al servidor:

byte[] outBuffer = Encoding.ASCII.GetBytes("USER " + account + "\r\n"); 
stream.Write(outBuffer, 0, outBuffer.Length); 

que envía el comando USUARIO. Necesita iniciar sesión y luego puede comenzar a capturar mensajes; consulte POP3 RFC para obtener la lista completa de comandos. Si no desea sacar su propio cheque este CodeProject article.

3

como abfo says, el protocolo POP3 es super simple, obtener los mensajes es pan comido. Analizar los mensajes para obtener los errores es más difícil, y analizar de manera confiable qué correo electrónico causó el error y por qué falló es realmente difícil. El problema es que los mensajes de rebote no tienen un formato estándar, los formularios predeterminados varían de MTA a MTA. Entonces, el administrador del sitio puede ajustar el motivo del error para que sea más difícil de reconocer, y el administrador del sitio podría modificar la plantilla del mensaje de error, lo que hace que sea casi imposible.

Vea si puede encontrar un administrador de listas de correo .NET y si puede reutilizar el código de manejo de rebotes. En su defecto, vea si puede cambiar la herramienta que envía los mensajes para enviar cada correo electrónico desde un único (y reversible) remitente del remitente (VERP, creo que se llama?). De esta forma, no necesita escanear el cuerpo del correo electrónico, puede decir qué receptor falló al examinar la dirección del destinatario del mensaje de error.

0

Gracias por la respuesta, ¡genial! Investigué un poco y encontré ListNanny - también es súper fácil de usar y te dice el tipo de rebote. Escribiré alguna prueba de concepto y veré cuál me gusta más ...

0

Tu pregunta me hizo darme cuenta de que el complemento de Wordpress Newsletter que iba a usar, no tenía administración de rebote, y también necesitaría algo .

Miré alrededor por un tiempo, y me he decidido por el PHPlist newsletter manager de código libre.

Describen en detalle their settings for handling bounces y tienen un experimental advanced bounce handling feature que le permitirá personalizar el manejo del rebote exactamente de la manera que desee.

Evem si decide no utilizar PHPlist, leer cómo lo hacen será información útil para usted.

Cuestiones relacionadas