API de JavaMail: descripción general
La API de JavaMail proporciona un marco de trabajo independiente de la plataforma y del protocolo para crear aplicaciones de correo y mensajería. La API de JavaMail proporciona un conjunto de clases abstractas que definen los objetos que componen un sistema de correo. Es un paquete opcional (extensión estándar) para leer, redactar y enviar mensajes electrónicos.
JavaMail proporciona elementos que se utilizan para construir una interfaz para un sistema de mensajería, incluidos los componentes y las interfaces del sistema. Si bien esta especificación no define ninguna implementación específica, JavaMail incluye varias clases que implementan los estándares de mensajería de Internet RFC822 y MIME. Estas clases se entregan como parte del paquete de clases JavaMail.
A continuación, se muestran algunos de los protocolos compatibles con la API de JavaMail:
SMTP: Acrónimo de Simple Mail Transfer Protocol. Proporciona un mecanismo para enviar correo electrónico.
POP: Acrónimo de Post Office Protocol. POP es el mecanismo que utiliza la mayoría de las personas en Internet para obtener su correo. Define la compatibilidad con un solo buzón de correo para cada usuario. RFC 1939 define este protocolo.
IMAP: Acrónimo de Internet Message Access Protocol. Es un protocolo avanzado para recibir mensajes. Brinda soporte para múltiples buzones de correo para cada usuario, además de que el buzón puede ser compartido por múltiples usuarios. Está definido en RFC 2060.
MIME: Acrónimo de Multipurpose Internet Mail Extensions. . No es un protocolo de transferencia de correo. En cambio, define el contenido de lo que se transfiere: el formato de los mensajes, los archivos adjuntos, etc. Hay muchos documentos diferentes que entran en vigor aquí: RFC 822, RFC 2045, RFC 2046 y RFC 2047. Como usuario de la API de JavaMail, normalmente no necesita preocuparse por estos formatos. Sin embargo, estos formatos existen y son utilizados por sus programas.
NNTP and Others: Hay muchos protocolos proporcionados por proveedores externos. Algunos de ellos son el Protocolo de transferencia de noticias en red (NNTP), Extensiones seguras de correo de Internet multipropósito (S / MIME), etc.
Los detalles de estos se tratarán en los capítulos siguientes.
Arquitectura
Como se dijo anteriormente, la aplicación Java utiliza la API JavaMail para redactar, enviar y recibir correos electrónicos. La siguiente figura ilustra la arquitectura de JavaMail:
El mecanismo abstracto de la API de JavaMail es similar a otras API de J2EE, como JDBC, JNDI y JMS. Como se ve en el diagrama de arquitectura anterior, la API de JavaMail se divide en dos partes principales:
Una parte independiente de la aplicación: los componentes de la aplicación utilizan una interfaz de programación de aplicaciones (API) para enviar y recibir mensajes de correo, independientemente del proveedor o protocolo subyacente utilizado.
Una parte dependiente del servicio: una interfaz de proveedor de servicios (SPI) habla los idiomas específicos del protocolo, como SMTP, POP, IMAP y Network News Transfer Protocol (NNTP). Se utiliza para conectar un proveedor de un servicio de correo electrónico a la plataforma J2EE.