nivel 15: estructuras recursivas binarias · envío de correos (javamail) –clase email •nuevas...
TRANSCRIPT
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS
JavaMail
1
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Agenda
• ¿Qué es?
• Principales Funcionalidades
• Envío de correos utilizando las librerías Mailer y JavaMail en Amazonas
2
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
¿Qué es?
• JavaMail es una librería implementada por Java que permite trabajar con servidores de correo electrónico.
• Generalmente se utiliza MIME (Multipurpose Internet Mail Extensions), un estándar en el manejo del correo electrónico.
3
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
¿Qué es?
• El protocolo SMTP (Simple Mail Transfer Protocol) es un protocolo que se usa para el envío de correo electrónico, mediante este protocolo se transfiere los mensajes desde la máquina cliente al servidor.
4
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Funcionalidades Principales
• Envío de mensajes con “texto plano”
• Recepción de mensajes con “texto plano”
• Utilización de carpetas para ordenar el correo
• Envío de correos multiparte que contengan “texto plano”, texto en formato HTML, archivos adjuntos y/o más.
5
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Amazonas: Ejemplo• Se ingresan los datos de búsqueda
6
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Amazonas: Ejemplo
• Se seleccionan el documento que se quiere ordenar
7
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Amazonas: Ejemplo• Se llena el formulario para que se envíe el documento por correo
electrónico
8
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Tienda• Cuando se oprime enviar se llama al método comprar de la clase tienda que utiliza la clase Email
9
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Email
• Métodos y atributos de la clase Email
10
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• La clase Email debe importar las libreriasjavax.activation.*, javax.mail.* yjavax.mail.internet.* que se encuentran en activation.jar y mail.jar
11
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Nuevas clases e interfaces implicadas:
• Session: Representa la conexión de la aplicación con el servidor de correo según las propiedades especificadas.
• Authenticator: Se utiliza si la sesión necesita autenticación.
• Message: Interfaz que representa el mensaje.
12
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Nuevas clases e interfaces implicadas:
• MimeMessage: Clase que representa el estándar internacional MIME para el correo electrónico.
• InternetAddress: Genera una dirección a partir del parámetro dado.
• Multipart y MimeBodyPart: Representan las partes del mensaje.
• IAdjunto: Interfaz que representa un archivo adjunto.
• Transport: Se utiliza para el envío del mensaje.
13
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Tienda• Se verifica que se tenga acceso al archivo y que este sea válido
14
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Tienda
• Se crea la instancia email de la clase Email
15
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se crea un nuevo email vacío
16
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Tienda
• Se define el asunto del correo
17
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se cambia el título del email asignando el nuevo valor al atributo titulo
18
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Tienda
• Se define el remitente
19
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se cambia el remitente del email asignando el nuevo valor al atributo emailRemitente
20
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Tienda
• Se agrega la dirección de correo del destinatario
21
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se agrega el email del destinatario dador por parámetro al ArrayList emailsDestinatarios
22
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Tienda
• Se establece el mensaje del correo predeterminado por el método crearMensaje(…)
23
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Tienda
24
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Tienda
• Se crea el mensaje predeterminado que se enviará en el correo según los datos ingresados en los parámetros
25
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se cambia el mensaje del email asignando el nuevo valor al atributo mensaje
26
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Tienda
• Se agrega el documento seleccionado
27
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se agregan el archivo adjunto dado por parámetro al arreglo de archivos adjuntos adjuntos
28
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (Mailer.jar) – Clase Tienda
• Se envía el correo con el documento seleccionado al destinatario
29
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Hay dos tipos de envío:
• Si el servidor STMP NO requiere autenticación
• Si el servidor STMP requiere autenticación
30
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Si el servidor STMP NO requiere autenticación se utiliza el método enviar que recibe parámetros pasándolos como null
31
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email• Se verifica que el servidor STMP exista
32
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se crea una variable de tipo Properties que contiene la información de la sesión que se va a utilizar
33
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
34
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se declara la sesión
35
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
36
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se verifica si la sesión no necesita autenticación y se inicializa de dicha forma.
37
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
38
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Si la sesión necesita autentificación, se declarara en las propiedades y luego se crea dicha autenticación
39
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
40
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se inicializa la sesión que necesita autenticación
41
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
42
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se crea el mensaje utilizando la sesión anterior
43
…
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se define el email del remitente
44
…
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se agregan los destinatarios
45
…
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se define el asunto
46
…
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Si el mensaje no tiene archivos adjuntos se puede definir en varios formatos como “texto plano” o HTML.
47
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
48
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Si el mensaje tiene archivos adjunto se utiliza la clase Multipart para fraccionar el correo en sus componentes.
49
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
50
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se define el texto del mensaje como una parte de él y se agrega a multipart
51
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se recorren todos los archivos adjuntos
52
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email• Cada archivo se define como una parte del mensaje
53
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se declara la fuente del archivo
54
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• El archivo se agrega al attachPart
55
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se define el nombre del archivo
56
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• El attachPart se agrega al multiPart
57
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email• Las partes del mensaje se de agregan a él como su contenido
58
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• Se envía el mensaje mediante la clase Transport
59
…
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• AddressException se genera si no se puede crear una instancia de la clase InternetAddress
60
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Envío de correos (JavaMail) – Clase Email
• MessagingException se genera si no se puede enviar el mensaje.
61
ISIS1206 – Estructuras de Datos
http://cupi2.uniandes.edu.co
Amazonas: Ejemplo
• Confirmación del envío
62