N18-C3

Post on 22-Oct-2014

20 views 1 download

Tags:

Transcript of 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

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

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.

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.

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

Amazonas: Ejemplo

Se ingresan los datos de búsqueda

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

Amazonas: Ejemplo

Se seleccionan el documento que se quiere ordenar

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

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

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

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

Métodos y atributos de la clase Email

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

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.

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

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

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

Envío de correos (JavaMail) – Clase Email

Se crea un nuevo email vacío

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

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

Se define el asunto del correo

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

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

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

Se define el remitente

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

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

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

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(…)

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

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

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

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

Se agrega el documento seleccionado

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

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

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

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

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

Envío de correos (JavaMail) – Clase Email

Se verifica que el servidor STMP exista

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

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

Envío de correos (JavaMail) – Clase Email

Se declara la sesión

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.

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

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

Envío de correos (JavaMail) – Clase Email

Se inicializa la sesión que necesita autenticación

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

Envío de correos (JavaMail) – Clase Email

Se crea el mensaje utilizando la sesión anterior

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

Envío de correos (JavaMail) – Clase Email

Se define el email del remitente

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

Envío de correos (JavaMail) – Clase Email

Se agregan los destinatarios

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

Envío de correos (JavaMail) – Clase Email

Se define el asunto

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.

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.

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

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

Envío de correos (JavaMail) – Clase Email

Se recorren todos los archivos adjuntos

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

Envío de correos (JavaMail) – Clase Email

Cada archivo se define como una parte del mensaje

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

Envío de correos (JavaMail) – Clase Email

Se declara la fuente del archivo

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

Envío de correos (JavaMail) – Clase Email

El archivo se agrega al attachPart

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

Envío de correos (JavaMail) – Clase Email

Se define el nombre del archivo

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

Envío de correos (JavaMail) – Clase Email

El attachPart se agrega al multiPart

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

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

Envío de correos (JavaMail) – Clase Email

Se envía el mensaje mediante la clase Transport

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

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.

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

Amazonas: Ejemplo

Confirmación del envío