Ver Mensaje Individual
  #11  
Antiguo 03-05-2019
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
Post

Cita:
Empezado por juank1971 Ver Mensaje
Yo realmente lo que quiero es extraer el asunto, el cuerpo y el nombre de los adjuntos, convertirlos a texto todo y guardarlos en sql server en unas tablas como te comentaba indexadas con full text que te permite hacer búsquedas en grandes cantidades de datos de forma instantánea, y guardar los adjuntos en una estructura de carpetas creo que voy a montar una maquina virtual en un server con Windows y el sql server solo para eso con el full text como te comento, coméntame entonces como tienes la estructura para leer el correo, que ya lo tengo todo en cuentas copias solo para eso con una regla de reenvio en el servidor de correos mdaemon. Y dime que hiciste exactamente con las expresiones regulares , gracias
Yo lo hago en dos pasos:
El primer paso es descargar todos los correos y almacenarlos en la BBDD, con sus correspondientes campos, Emisor, destinatario, fecha, asunto y cuerpo del email, este proceso no tiene excesiva complicación.

En este paso el mayor problema que puedes tener es determinar si un correo ya lo has descargado o no, puesto que con INDY no hay un campo clave que determine si el email es único, por que se accede por un indice numérico y conforme se van borrando o entrando nuevos emails este se va renumerando.

Yo lo solucione aplicando como campo único para determinar si ya existe, la combinación de la cuenta del emisor y la fecha del mensaje en el formato mas completo de fecha, incluida milésimas de segundo (yyyymmddhhnnssdddd), aunque en teoría con la fecha únicamente si no tienes mucho volumen de email es mas que suficiente, pero creo recordar que en algún momento dos correos entraron tan seguidos que la fecha fue la misma, por lo que con esta combinación, ya no me volvío a suceder.

Y el segundo paso analizar esos emails, adjuntando de forma automática cada email a su correspondiente documento,
-pedidos recibidos desde la web con su pedido en el programa de contabilidad,
-justificantes de pagos desde bancos, paypal, etc, con sus correspondientes facturas, etc.

Para realizar el proceso de búsqueda, se hace a través de una especie de patrones de búsqueda que el usuario tiene que generar, y que se almacenan en la base de datos, y aquí es la parte donde entran en juego las expresiones regulares, que permiten entre comillas de forma fácil reconocer formatos de cadena de texto.

Se genera un patrón de búsqueda por cada tipo de dato que se espera encontrar y por cada emisor.
Y los datos que se almacenan son :
-el tipo de correo del que se trata: pedido, pago, comunicación, etc,
-los datos que se esperan encontrar en un determinado email para considerarlo valido, tales como email de la cuenta emisora, palabras clave en el asunto y/o cuerpo del mensaje, etc.
-Y como extraer los datos validos del email (en mi caso nombres de cliente, direcciones de envío, importes de los pagos, números de pedido, etc)
Se incluye una lista de funciones pre-programadas que el usuario puede seleccionar, y que se aplicaran al correo siempre que cumpla el patrón de búsqueda, estas funciones son bien para poder tratar los datos extráidos, o bien para tratar el propio correo (borrarlo, marcarlo como prioridad, reenviarlo, etc)
Responder Con Cita