Extensión Para Clasificación De Correo Electrónico En Mozilla
Total Page:16
File Type:pdf, Size:1020Kb
ESCUELA TECNICA´ SUPERIOR DE INGENIER´IA INFORMATICA´ Ingenier´ıa Informatica´ Extension´ para Clasificacion´ de Correo Electronico´ en Mozilla Thunderbird Realizado por Jos´eMar´ıaCarmona Cejudo Dirigido por Manuel Baena Garc´ıay Rafael Morales Bueno Departamento Lenguajes y Ciencias de la Computaci´on UNIVERSIDAD DE MALAGA´ MALAGA,´ Febrero 2008 UNIVERSIDAD DE MALAGA´ escuela tecnica´ superior de ingenier´ıa informatica´ Ingenier´ıa Informatica´ Reunido el tribunal examinador en el d´ıa de la fecha, constituido por: Presidente Do/Da. Secretario Do/Da. Vocal Do/Da. para juzgar el proyecto Fin de Carrera titulado: Extensi´onpara Clasificaci´onde Correo en Mozilla Thun- derbird del alumno Do. Jos´eMar´ıaCarmona Cejudo dirigido por Do. Rafael Morales Bueno y Da. Manuel Baena Garc´ıa ACORDO´ POR OTORGAR LA CALIFICACION´ DE Y PARA QUE CONSTE, SE EXTIENDE FIRMADA POR LOS COMPA- RECIENTES DEL TRIBUNAL, LA PRESENTE DILIGENCIA. M´alaga, a de del 2003 El Presidente El Secretario El Vocal Fdo: Fdo: Fdo: Agradecimientos A Manuel Baena, por estar siempre dispuesto a ayudar, y por sus bue- nas ideas y consejos. A todos los que comparten en Internet su experiencia sobre Thunder- bird. A mi familia, por apoyarme siempre. A Brise, por estar a mi lado en los buenos y en los malos momentos. 8 ´Indice general 1. Introducci´on 15 1.1. El correo electr´onico . 15 1.1.1. Introducci´on al correo electr´onico . 15 1.2. La necesidad de clasificar el correo electr´onico . 17 1.2.1. Clasificaci´on de correo usando t´ecnicas bayesianas . 18 1.2.2. genusmail ......................... 20 1.3. Thunderbird y el proyecto Mozilla . 21 1.3.1. Breve historia de Mozilla Thunderbird . 22 1.3.2. Caracter´ısticas de Mozilla Thunderbird . 24 2. Objetivos 27 2.1. Prop´osito de este proyecto . 27 2.2. Objetivos ............................. 27 3. Consideraciones t´ecnicas 29 3.1. Consideraciones sobre usabilidad . 29 3.2. Desarrollo para la suite Mozilla . 39 3.2.1. Arquitectura de la suite Mozilla. XPCOM . 39 3.2.2. XUL............................ 41 3.2.3. JavaScript......................... 43 3.2.4. Internacionalizaci´on y localizaci´on . 44 3.2.5. Gecko ........................... 44 3.2.6. Chrome .......................... 45 3.2.7. RDF............................ 47 9 10 ´INDICE GENERAL 3.2.8. Seguridad ......................... 48 4. An´alisis y dise˜no 51 4.1. An´alisis preliminar: Diagramas . 52 4.1.1. Casosdeuso ....................... 52 4.1.2. Diagramas de clase . 54 4.1.3. Diagrama de paquetes . 55 4.1.4. Diagrama de estados . 56 4.1.5. Diagramas de secuencia . 58 4.2. An´alisis de interfaces de usuario similares . 61 4.2.1. An´alisis .......................... 62 4.2.2. Implementaci´on los escenarios de uso por parte de las herramientas ....................... 65 4.2.3. An´alisis de las herramientas atendiendo a heur´ısticas dedise˜no ......................... 70 4.3. Dise˜no de la interfaz . 72 4.4. Comunicaci´on con Genusmail .................. 77 5. Implementaci´on 79 5.1. Flujo de trabajo para la implementaci´on de extensiones para Thunderbird............................ 79 5.2. Implementaci´on de la interfaz sin funcionalidad . 80 5.2.1. Estructura del programa: carpetas . 80 5.2.2. Overlays.......................... 82 5.3. Implementaci´on de la funcionalidad de la interfaz . 86 5.3.1. De la interfaz al clasificador . 86 5.3.2. Llamada al clasificador . 91 5.4. Componente XPCOM . 93 5.5. Sistema de preferencias de la extensi´on . 98 6. Despliegue de la extensi´on 101 6.1. Estructura de directorios . 101 ´INDICE GENERAL 11 6.2. Ficheros de configuraci´on . 104 6.2.1. chrome.manifest .....................104 6.2.2. install.rdf . 105 7. Manual de usuario 107 7.1. Instalaci´on y desinstalaci´on de Another Mail Classifier . 107 7.2. Configuraci´on de las preferencias . 110 7.3. Uso de la extensi´on . 111 7.3.1. Entrenar..........................111 7.3.2. Requerir clasificaci´on . 113 7.3.3. Mover e-mail a clasificaci´on . 113 7.3.4. Eliminar clasificaci´on . 114 7.3.5. Forzar clasificaci´on . 114 8. Conclusiones 115 A. Contenido del soporte ´optico 119 B. Convenciones de codificaci´on 121 B.1. Convenciones de codificaci´on . 121 C. Programas usados 125 C.1. Recursos hardware y software usados . 125 C.2. Snipplets de c´odigo externos usados . 126 Bibliograf´ıa 127 12 ´INDICE GENERAL ´Indice de figuras 1.1. Logo de Mozilla Thunderbird . 24 3.1. Captura del buscador Google, donde se aprecia el uso de la Ley de la Cercan´ıa . 32 3.2. Captura del portal de noticias BBC, para ilustrar la Ley de la Semejanza . 33 3.3. Panel principal de la Wikipedia, claro ejemplo de la Ley de Clausura.............................. 34 3.4. P´agina principal de Amazon.com, para ilustrar la Ley de la FigurayelFondo......................... 34 3.5. Parte inferior de una p´agina de la Wikipedia, donde se observa el uso combinado de varias leyes . 35 4.1. Men´ude Bayesweep en Outlook Express . 66 4.2. Configuraci´on de categor´ıas en Bayesweep . 69 4.3. Definici´on de una regla en Bayesweep . 71 4.4. Captura del men´uprincipal de nuestra extensi´on . 73 4.5. Columna a˜nadida al panel de correo de Thunderbird . 75 4.6. Renombre de las entradas del men´upara mover y copiar e-mails 75 4.7. Ventana de preferencias de la extensi´on . 76 4.8. Representaci´on gr´afica del sistema de pseudotuber´ıas usado para comunicarnos con Genusmail ................ 78 5.1. Arbol´ de directorios del c´odigo fuente de la extensi´on . 81 13 14 ´INDICE DE FIGURAS 5.2. C´odigo fuente del overlay correspondiente a la columna perso- nalizada .............................. 82 5.3. C´odigo de inicializaci´on de anothermailclassifier . 87 5.4. Fragmento del c´odigo del listener . 89 5.5. C´odigo correspondiente al movimiento de un e-mail . 90 5.6. Secuencia de acontecimientos en la clasificaci´on de un e-mail . 93 5.7. Definici´on IDL de la interfaz . 94 5.8. Interfaz IDL para el Callback . 95 5.9. C´odigo C++ correspondiente a la implementaci´on del compo- nente AMCComp ........................... 97 5.10. C´odigo JavaScript de las preferencias . 99 5.11. Editor de configuraci´on de Mozilla Thunderbird . 100 6.1. Organizaci´on de los ficheros de la extensi´on . 102 7.1. Men´ude complementos de Thunderbird. 108 7.2. Explorador de archivos, para encontrar el instalable de la ex- tensi´on. ..............................108 7.3. Instalaci´on de la extensi´on. 109 7.4. Instalaci´on de la extensi´on finalizada. 109 7.5. Instalaci´on de la extensi´on finalizada. 110 7.6. Advertencia de que el entrenamiento es una operaci´on poten- cialmentelarga ..........................111 7.7. E-mails sin clasificar . 112 7.8. El usuario le pide a Genusmail que clasifique dos correos . 112 7.9. Los correos han sido clasificados . 112 Cap´ıtulo1 Introducci´on Para comenzar nuestro trabajo, daremos una peque˜na introducci´on al correo electr´onico y nos fijaremos en las razones que llevan a la necesidad de clasificarlo en distintas categor´ıas. Veremos en qu´econsisten las t´ecnicas bayesianas de clasificaci´on, y una herramienta concreta, Genusmail. Poste- riormente hablaremos del programa al que est´adirigida nuestra extensi´on, Mozilla Thunderbird, de su historia y caracter´ısticas m´as notables, ya que el objetivo final de este trabajo consiste en integrar en Thunderbird una interfaz con el sistema de clasificaci´on Genusmail. 1.1. El correo electr´onico 1.1.1. Introducci´onal correo electr´onico El correo electr´onico o e-mail/email 1 naci´oa finales de los a˜nos 60, siendo al principio una herramienta de intercambio de informaci´on para peque˜nos grupos de investigaci´on. Hoy en d´ıa lo utilizan sin embargo miles de millo- nes de usuarios. El correo electr´onico funciona, grosso modo, de la siguiente 1Existe controversia respecto a la necesidad de usar gui´ono no en la palabra “e-mail”. El CMS (Chicago Manual of Style, [Wie05]), est´andar de facto para la escritura y el perio- dismo en ´ambitos tecnol´ogicos, recomienda usar el gui´on; por lo tanto, nosotros usaremos esta recomendaci´on 15 16 CAP´ITULO 1. INTRODUCCION´ manera: Mediante cualquier cliente de correo, como es el caso de Mozilla Thun- derbird, se escribe el mensaje y se env´ıa a una direcci´on de correo. Entonces, el cliente env´ıa su mensaje al servidor de correo. Cuando el servidor recibe el correo, analiza la direcci´on2, etc, del desti- natario, y, si es necesario, transfiere el correo a otro servidor. Es decir, el mensaje es enrutado a trav´esde una ruta de servidores, hasta que llega al servidor final. Todo esto es lo controla el protocolo SMTP. El mensaje permanece en el servidor de destino hasta que el usuario so- licita leerlo. En ese momento, el cliente de correo descarga el mensaje al ordenador del usuario, para que lo pueda leer. La solicitud del correo se puede hacer mediante protocolos como POP, o el m´as moderno IMAP. El mensaje en s´ımismo consta de dos partes: cabecera y cuerpo. La cabecera contiene informaciones como la ruta que ha seguido el e-mail hasta llegar a sus destinatario, la fecha en que el mensaje fue enviado, la direcci´on de correo del emisor3, la lista de destinatarios, la lista de destinatarios de una copia de carb´on (CC o BCC), el subject o tema del e-mail, el identificador del mensaje, y m´as. La sintaxis exacta de la cabecera est´adescrita en el RFC 2822[Res01]. El cuerpo estaba compuesto inicialmente de texto plano codificado en ASCII de 7 bytes.