NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS · Envío de correos (JavaMail) –Clase Email •Nuevas...

Post on 20-Jul-2020

3 views 0 download

Transcript of NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS · Envío de correos (JavaMail) –Clase Email •Nuevas...

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