API JavaMail

El API JavaMail es un paquete opcional (extensi�n est�ndard) para leer, componer, y enviar mensajes electr�nicos.

Usamos este paquete para crear programas del tipo MUA (Mail User Agent), similares a Eudora, Pine, y Microsoft Outlook. Su prop�sito principal no es transportar, enviar, o re-enviar mensajes como sendmail u otros programas del tipo MTA (Mail Transfer Agent). En otras palabras, los usuarios interact�an con los programas para leer y escribir e-mails. Los programas MUA tratan con los programas MTA para el env�o real.

El API JavaMail est� dise�ado para proporcionar acceso independiente del protocolo para enviar y recibir mensajes dividiendose en dos partes:

  • La primera parte del API es el foco de este tutor. Basicamente, c�mo enviar y recibir mensajes independientemente del proveedor/protocolo.
  • La segunda parte habla de lenguajes especificos del protocolo como SMTP, POP, IMAP, y NNTP. Con el API, JavaMail para poder comunicar con un servidor, necesitamos un proveedor para un protocolo.

.�Revisi�n de los Protocolos Relacionados

Antes de mirar dentro de las especificaciones del API JavaMail, echemos un vistazo a los protocolos usados con el API. B�sicamente son cuatro:

  • SMTP
  • POP
  • IMAP
  • MIME

Tambi�n ejecutaremos sobre NNTP y algunos otros. Entender lo b�sico de cada protocolo nos ayudar� a entender mejor c�mo usar el API JavaMail. Aunque el API sea independiente del protocolo, no podemos evitar las limitaciones de los protocolos subyacentes. Si una capacidad no est� soportada por el protocolo elegido, el API JavaMail no har� que esa capacidad aparezca por arte de magia.

(Como veremos pronto, este es un problema normal cuando trabajamos con POP).

.�SMTP

El protocolo Simple Mail Transfer Protocol (SMTP) est� definido por la RFC 821. Define el mecanismo para enviar e-mail. En el contexto del API JavaMail, nuestro programa basado en JavaMail comunicar� con el servidor SMTP de nuestro proveedor de servicios (ISP). Este servidor SMTP dejar� el mensaje en el servidor SMTP del recipiente(s) para que sea recogido por los usuarios a trav�s de POP o IMAP. Esto no requiere que nuestro servidor SMTP sea un rele abierto, pues se utiliza la autentificaci�n, pero es nuestra responsabilidad asegurarnos de que el servidor SMTP se configure correctamente. No hay nada en el API JavaMail sobre tareas como el configuraci�n de un servidor para retransmitir mensajes o para agregar y para quitar cuentas del e-mail.

.�POP

POP viene de Post Office Protocol. Actualmante en la versi�n 3, tambi�n conocido como POP3, la RFC 1939 define este protocolo.

POP es el mecanismo que la mayor�a de la gente usa en Internet para conseguir su correo. Define el soporte de un s�lo mailbox por cada usuario. �sto es todo lo que lo hace, y �sta tambi�n es la fuente de la mayor�a de la confusi�n. Muchas de las cosas con que gente se familiariza cuando usa POP, como la capacidad de ver cu�ntos mensajes de correo nuevos tienen, no lo soporta POP en absoluto. Estas capacidades se construyen en programas como Eudora o Microsoft Outlook, que recuerdan cosas como los �ltimos correos recibidos y calculan cu�ntos tenemos nuevos. As� pues, al usar el API JavaMail, si queremos este tipo de informaci�n tendremos que calcularla nosotros mismos.

.�IMAP

IMAP es un protocolo m�s avanzado para recibir mensajes. Definido en la RFC 2060, IMAP viene de Internet Message Access Protocol, y est� actualmente en la versi�n 4, tambi�n conocida como IMAP4. Para usar el IMAP, nuestro servidor de correo debe soportar este protocolo. No podemos simplemente cambiar nuestro programa para usar IMAP en vez de POP y que se soporte todo IMAP. Si asumimos que nuestro servidor de correo soporta IAMP, nuestro programa basado en JavaMail puede aprovecharse de los usuario que tienen carpetas m�ltiples en el servidor y estas carpetas se pueden compartir por varios usuarios.

Debido a las capacidades m�s avanzadas, podr�amos pensar que IMAP ser�a utilizado por todos. Pero no es as�. Sobrecarga mucho el servidor de correo, requiriendo que el servidor reciba los nuevos mensajes, los entrege a los usuarios cuando sean solicitados, y los mantiene en las distintas carpetas de cada usuario. Aunque que esto centraliza las copias de seguridad, tambi�n hace que las carpetas de correo a largo plazo de los usuarios se hagan cada vez m�s grandes, y todo el mundo sufre cuando se agota el espacio en el disco. Con POP, los mensajes recuperados son eliminados del servidor de correo.

.�MIME

MIME viene de Multipurpose Internet Mail Extensions. No es un protocolo de transferencia de e-mail. En su lugar, define el contenido de lo que se est� transfiriendo: el formato de los mensajes, los attachments, etc. Hay muchos documentos que tienen efecto sobre esto: las RFC 822, RFC 2045, RFC 2046, y RFC 2047. Como usuario del API JavaMail, normalmente no tendremos que preocuparnos sobre estos formatos. Sin embargo, estos formatos existen y son utilizados por nuestros programas.

.�NNTP y Otros

A causa de la divisi�n del API JavaMail entre proveedor y cualquier otra cosa, podemos f�cilmente soportar protocolos adicionales. Sun Mantiene una lista de proveedores de terceras partes que se aprovechan de los protocolos para los que Sun no proporciona soporte. All� encontraremos soporte para NNTP Network News Transport Protocol [newsgroups], S/MIME Secure Multipurpose Internet Mail Extensions, y m�s.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO