La Web del Programador: Comunidad de Programadores
 
    Pregunta:  15240 - COMO IMPLEMENTAR UNA APLICACION POP3 SIN JAVAMAIL
Autor:  David Gomez Murillo
Como puedo implementar una aplicación pop3 sin utilizar JavaMail. Por favor si teneis un ejemplo mandadmelo.

Gracias

  Respuesta:  Rafael Hernamperez Martin
Hola, amigo,

El protocolo POP3, al igual que el protocolo SMTP, se puede utilizar enviando comandos especificos al protocolo. Para ello, es necesario crear un stream (OutputStream en este caso, ya que se escribe) al puerto especificado (110 en el caso de POP3). A partir de este stream se van escribiendo los comandos correspondientes. He aqui los mas utilizados:

USER
El parámetro especificado proporciona el nombre de usuario bajo el cual nos conoce el servidor.

PASS
Este comando debe seguir inmediatamente al comando "USER" y su parámetro será la palabra clave que le corresponda.

CD
Este comando permite cambiar el directorio de trabajo para el módulo POP3. En el directorio de trabajo se almacenarán los mensajes que se reciban.

RECV
Este comando pide a la capa POP3 que recoja todo el correo pendiente y lo almacene en el fichero especificado como parámetro. Los mensajes se almacenan en formato MAILBOX: todos los mensajes empiezan por una línea "FROM" y entre mensaje y mensaje se almacena una línea en blanco.

Los mensajes recibidos son borrados del servidor de forma automática.

QUIT
Este comando no requiere parámetros y sirve para cerrar una conexión POP3. Si el servidor se niega a hacerlo puede clausurarse la conexión de forma imperativa mediante una rutina definida más adelante.

Cuando la conexión se cierra se envía un mensaje "MSG_POP3_CLOSE" con el formato:

campo1: Ignorado
campo2: Identificador de la conexión
campo3: Ignorado

Sobre estos protocolos encontraras amplia informacion en la red, con ejemplos sencillos desde alguna shell.

La unica pega es que estos comandos se utilizan en sistemas UNIX, y en Windows no suele funcionar. Es por ello aconsejable utilizar las JavaMail API, para asegurar las portabilidad.

Un saludo