Actualizado el 24 de Noviembre del 2018 (Publicado el 14 de Enero del 2017)
2.350 visualizaciones desde el 14 de Enero del 2017
2,9 MB
230 paginas
Creado hace 18a (12/08/2006)
Java a Tope:
( JavaMail en ejemplos )
Sergio Gálvez Rojas
Ignacio García Sucino
JAVA A TOPE: JAVAMAIL EN EJEMPLOS. EDICIÓN ELECTRÓNICA
AUT ORES:
ILUST RACIÓN
DE P ORT ADA:
SERGIO GÁLVEZ ROJAS
IGNACIO GARCÍA SUCINO
JOSÉ MIGUEL GÁLVEZ ROJAS
JAVIER MACÍAS GÁLVEZ
Sun, el logot ipo de Sun, Sun M icrosyst em s y Java son m arcas o m arcas regist radas de Sun
M icrosyst em s Inc. en los EE.UU. y ot ros países.
Depósito Legal: MA-1287-2006
ISBN: 84-690-0697-5
Java a tope:
JavaMail
(JavaMail en ejemplos)
Sergio Gálvez Rojas
Doctor Ingeniero en Informática
Ignacio García Sucino
Ingeniero Técnico en Informática de Sistemas
Dpto. de Lenguajes y Ciencias de la Computación
E.T.S. de Ingeniería Informática
Universidad de Málaga
Java a tope: JavaMail en ejemplos
Índice
Prólogo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Capítulo 1: Fundamentos del correo electrónico. . . . . . . . . . . . . . 1
1.1 El correo electrónico: definición e historia. . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Funcionamiento del correo electrónico. . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Estructura de un mensaje de correo electrónico. . . . . . . . . . . . . . . . . . . . 5
1.4 Direcciones de correo electrónico.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Protocolos y extensiones relacionadas. . . . . . . . . . . . . . . . . . . . . . . . . . . 8
POP (Post Office Protocol). . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.1
SMTP (Simple Mail Transfer Protocol). . . . . . . . . . . . . . . . . . . 9
1.5.2
IMAP (Internet Message Access Protocol). . . . . . . . . . . . . . . . 10
1.5.3
1.5.4 MIME (Multipurpose Internet Mail Extension). . . . . . . . . . . . 11
2.1.1
2.1.2
Capítulo 2: Primeros pasos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1 Introducción a Java y JavaMail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
El lenguaje de programación Java. . . . . . . . . . . . . . . . . . . . . . 13
La API JavaMail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Posibilidades de JavaMail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Relación con JMS (Java Message Service).. . . . . . . . . . . . . . . . . . . . . . 17
2.4 Instalación de JavaMail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Contenido de javamail-1_4.zip.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Directorios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Ficheros .jar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.1
2.5.2
Capítulo 3: Enviar y recibir mensajes básicos. . . . . . . . . . . . . . . 23
3.1 Visión general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Envío de un mensaje de correo electrónico. . . . . . . . . . . . . . . . . . . . . . . 23
Establecimiento de propiedades de la conexión.. . . . . . . . . . . . 23
Creación del mensaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Envío del mensaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3 Recepción de mensajes de correo electrónico. . . . . . . . . . . . . . . . . . . . . 30
Establecimiento de propiedades de la conexión.. . . . . . . . . . . . 31
Conexión a un almacén de mensajes (Store). . . . . . . . . . . . . . . 32
Recuperación de mensajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1
3.2.2
3.2.3
3.2.4
3.3.1
3.3.2
3.3.3
i
Índice
3.3.4
3.3.5
Procesamiento de mensajes.. . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.1
Capítulo 4: Uso de banderines y gestión de buzones. . . . . . . . . . 37
4.1 Introducción.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Uso de banderines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3 Gestión de buzones y carpetas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Operaciones sobre las carpetas de un buzón. . . . . . . . . . . . . . . 42
4.3.1.1 Creación de una carpeta.. . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3.1.2 Acceso a la estructura de carpetas de un buzón. . . . . . . . . 44
4.3.1.3 Copia de mensajes entre carpetas.. . . . . . . . . . . . . . . . . . . 46
4.3.1.4 Borrado de una carpeta. . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.4 Resumen de paquetes y clases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
La clase Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
La clase Session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Las clases Store y Folder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
La clase Transport. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.4.1
4.4.2
4.4.3
4.4.4
4.3.1
4.3.2
Capítulo 5: Correo electrónico multiparte. . . . . . . . . . . . . . . . . . 55
5.1 Introducción.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2 Envío de mensajes HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.2.1 Mensaje HTML con referencia a una URL. . . . . . . . . . . . . . . . 56
5.2.2
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2.3 Mensaje HTML con imágenes integradas. . . . . . . . . . . . . . . . . 62
5.2.4
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.3 Mensajes con ficheros adjuntos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Envío de mensaje con ficheros adjuntos. . . . . . . . . . . . . . . . . . 67
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Recepción de mensaje con ficheros adjuntos. . . . . . . . . . . . . . . 71
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.3.1
5.3.2
5.3.3
5.3.4
Capítulo 6: Seguridad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.1 Visión general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.2 Autenticación frente a un servidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Clases Authenticator y PasswordAuthentication . . . . . . . . . . . 79
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.3 Conexión segura con SSL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Proveedores de seguridad y propiedades. . . . . . . . . . . . . . . . . . 83
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2.1
6.2.2
6.3.1
6.3.2
ii
6.3.3
Certificados de seguridad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Java a tope: JavaMail en ejemplos
Capítulo 7: Acuse de recibo y prioridades. Búsquedas. . . . . . . . 89
7.1 Introducción.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
7.2 Acuse de recibo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
7.3 Prioridad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Prioridad en el envío de mensajes.. . . . . . . . . . . . . . . . . . . . . . 92
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Prioridad en la recepción de mensajes. . . . . . . . . . . . . . . . . . . 95
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.4 Búsquedas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
La clase SearchTerm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Ejemplo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.3.1
7.3.2
7.3.3
7.3.4
7.2.1
7.4.1
7.4.2
iii
Índice
iv
Java a tope: JavaMail en ejemplos
Prólogo
El correo electrónico es, actualmente, uno de los principales medios de
comunicación electrónicos asíncronos. De hecho, el primer uso que se
dio a la, hoy omnipresente, red internet fue precisamente el de
comunicar entre sí a los miembros de un equipo de investigación dispersos
geográficamente mediante emails. Y aún hoy día, a pesar del enorme auge de la
World Wide Web, el tráfico que soporta internet debido a las comunicaciones vía
correo electrónico supone un buen porcentaje del total.
Aparte de la indudable importancia de este tipo de comunicaciones realizadas
a través de aplicaciones clientes como Eudora, Outlook, Thunderbird, etc. en las que
intervienen directamente personas escribiendo y leyendo los correos, también resulta
muy interesante el que las aplicaciones sean capaces de enviar y recibir
automáticamente mensajes ante ciertas circunstancias detectadas de forma autónoma.
Por ejemplo, resulta conveniente informar a un administrador de bases de datos
cuándo se ha alcanzado un tamaño crítico en los espacios de tablas disponibles para
almacenar información, o cuándo se ha intentado algún tipo de acceso sospechoso no
autorizado. Análogamente, una aplicación puede ser capaz de recibir mensajes con
un formato predeterminado y procesarlos autónomamente: pedidos de almacén,
solicitudes de vigilancias para exámenes, etc. informando asim
Comentarios de: Java a tope: JavaMail (0)
No hay comentarios