Manual de Instala%C3%A7%C3%A3o e Opera%C3%A7%C3%A3o TSP143MD Revis%C3%A3o 0
N18-C3
-
Upload
eliasgoltie -
Category
Documents
-
view
20 -
download
1
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