N18-C3

52
Universidad de los Andes Ingeniería de Sistemas y Computación ISIS1206 - Estructuras de Datos Nivel 18: Aplicaciones WEB y desarrollo por componentes Presentación N18-C3 JavaMail

Transcript of N18-C3

Page 1: N18-C3

Universidad de los AndesIngeniería de Sistemas y Computación

ISIS1206 - Estructuras de DatosNivel 18: Aplicaciones WEB y desarrollo por componentesPresentación N18-C3

JavaMail

Page 2: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 2

Agenda

¿Qué es? Principales Funcionalidades Envío de correos utilizando las librerías Mailer y JavaMail en

Amazonas

Page 3: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 3

¿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.

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.

Page 4: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 4

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.

Page 5: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 5

Amazonas: Ejemplo

Se ingresan los datos de búsqueda

Page 6: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 6

Amazonas: Ejemplo

Se seleccionan el documento que se quiere ordenar

Page 7: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 7

Amazonas: Ejemplo

Se llena el formulario para que se envíe el documento por correo electrónico

Page 8: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 8

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

Page 9: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 9

Envío de correos (Mailer.jar) – Clase Email

Métodos y atributos de la clase Email

Page 10: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 10

Envío de correos (JavaMail) – Clase Email

La clase Email debe importar las librerias javax.activation.*, javax.mail.* yjavax.mail.internet.* que se encuentran en activation.jar y mail.jar

Page 11: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 11

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. 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.

Page 12: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 12

Envío de correos (Mailer.jar) – Clase Tienda

Se verifica que se tenga acceso al archivo y que este sea válido

Page 13: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 13

Envío de correos (Mailer.jar) – Clase Tienda

Se crea la instancia email de la clase Email

Page 14: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 14

Envío de correos (JavaMail) – Clase Email

Se crea un nuevo email vacío

Page 15: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 15

Envío de correos (Mailer.jar) – Clase Tienda

Se define el asunto del correo

Page 16: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 16

Envío de correos (JavaMail) – Clase Email

Se cambia el título del email asignando el nuevo valor al atributo titulo

Page 17: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 17

Envío de correos (Mailer.jar) – Clase Tienda

Se define el remitente

Page 18: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 18

Envío de correos (JavaMail) – Clase Email

Se cambia el remitente del email asignando el nuevo valor al atributo emailRemitente

Page 19: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 19

Envío de correos (Mailer.jar) – Clase Tienda

Se agrega la dirección de correo del destinatario

Page 20: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 20

Envío de correos (JavaMail) – Clase Email

Se agrega el email del destinatario dador por parámetro al ArrayList emailsDestinatarios

Page 21: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 21

Envío de correos (Mailer.jar) – Clase Tienda

Se establece el mensaje del correo predeterminado por el método crearMensaje(…)

Page 22: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 22

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

Page 23: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 23

Envío de correos (JavaMail) – Clase Email

Se cambia el mensaje del email asignando el nuevo valor al atributo mensaje

Page 24: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 24

Envío de correos (Mailer.jar) – Clase Tienda

Se agrega el documento seleccionado

Page 25: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 25

Envío de correos (JavaMail) – Clase Email

Se agregan el archivo adjunto dado por parámetro al arreglo de archivos adjuntos adjuntos

Page 26: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 26

Envío de correos (Mailer.jar) – Clase Tienda

Se envía el correo con el documento seleccionado al destinatario

Page 27: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 27

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

Page 28: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 28

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

Page 29: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 29

Envío de correos (JavaMail) – Clase Email

Se verifica que el servidor STMP exista

Page 30: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 30

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

Page 31: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 31

Envío de correos (JavaMail) – Clase Email

Se declara la sesión

Page 32: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 32

Envío de correos (JavaMail) – Clase Email

Se verifica si la sesión no necesita autenticación y se inicializa de dicha forma.

Page 33: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 33

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

Page 34: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 34

Envío de correos (JavaMail) – Clase Email

Se inicializa la sesión que necesita autenticación

Page 35: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 35

Envío de correos (JavaMail) – Clase Email

Se crea el mensaje utilizando la sesión anterior

Page 36: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 36

Envío de correos (JavaMail) – Clase Email

Se define el email del remitente

Page 37: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 37

Envío de correos (JavaMail) – Clase Email

Se agregan los destinatarios

Page 38: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 38

Envío de correos (JavaMail) – Clase Email

Se define el asunto

Page 39: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 39

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.

Page 40: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 40

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.

Page 41: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 41

Envío de correos (JavaMail) – Clase Email

Se define el texto del mensaje como una parte de él y se agrega a multipart

Page 42: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 42

Envío de correos (JavaMail) – Clase Email

Se recorren todos los archivos adjuntos

Page 43: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 43

Envío de correos (JavaMail) – Clase Email

Cada archivo se define como una parte del mensaje

Page 44: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 44

Envío de correos (JavaMail) – Clase Email

Se declara la fuente del archivo

Page 45: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 45

Envío de correos (JavaMail) – Clase Email

El archivo se agrega al attachPart

Page 46: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 46

Envío de correos (JavaMail) – Clase Email

Se define el nombre del archivo

Page 47: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 47

Envío de correos (JavaMail) – Clase Email

El attachPart se agrega al multiPart

Page 48: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 48

Envío de correos (JavaMail) – Clase Email

Las partes del mensaje se de agregan a él como su contenido

Page 49: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 49

Envío de correos (JavaMail) – Clase Email

Se envía el mensaje mediante la clase Transport

Page 50: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 50

Envío de correos (JavaMail) – Clase Email

AddressException se genera si no se puede crear una instancia de la clase InternetAddress

Page 51: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 51

Envío de correos (JavaMail) – Clase Email

MessagingException se genera si no se puede enviar el mensaje.

Page 52: N18-C3

Proyecto CUPI2 http://cupi2.uniandes.edu.co 52

Amazonas: Ejemplo

Confirmación del envío