n18-c3
TRANSCRIPT
![Page 1: N18-C3](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/5.jpg)
Proyecto CUPI2 http://cupi2.uniandes.edu.co 5
Amazonas: Ejemplo
Se ingresan los datos de búsqueda
![Page 6: N18-C3](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/6.jpg)
Proyecto CUPI2 http://cupi2.uniandes.edu.co 6
Amazonas: Ejemplo
Se seleccionan el documento que se quiere ordenar
![Page 7: N18-C3](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/17.jpg)
Proyecto CUPI2 http://cupi2.uniandes.edu.co 17
Envío de correos (Mailer.jar) – Clase Tienda
Se define el remitente
![Page 18: N18-C3](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/31.jpg)
Proyecto CUPI2 http://cupi2.uniandes.edu.co 31
Envío de correos (JavaMail) – Clase Email
Se declara la sesión
…
![Page 32: N18-C3](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/37.jpg)
Proyecto CUPI2 http://cupi2.uniandes.edu.co 37
Envío de correos (JavaMail) – Clase Email
Se agregan los destinatarios
…
…
![Page 38: N18-C3](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/38.jpg)
Proyecto CUPI2 http://cupi2.uniandes.edu.co 38
Envío de correos (JavaMail) – Clase Email
Se define el asunto
…
…
![Page 39: N18-C3](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/47.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/51.jpg)
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](https://reader034.vdocuments.co/reader034/viewer/2022050904/54480740b1af9f57618b47ed/html5/thumbnails/52.jpg)
Proyecto CUPI2 http://cupi2.uniandes.edu.co 52
Amazonas: Ejemplo
Confirmación del envío