API JavaMail - Servidores POP3
El Protocolo de oficina de correos (POP) es un protocolo estándar de Internet de nivel de aplicación utilizado por los clientes de correo electrónico locales para recuperar el correo electrónico de un servidor remoto a través de una conexión TCP / IP. POP admite requisitos simples de descarga y eliminación para acceder a buzones de correo remotos. Un servidor POP3 escucha en el conocido puerto 110.
Paquete com.sun.mail.pop3es un proveedor de protocolo POP3 para la API de JavaMail que proporciona acceso a un almacén de mensajes POP3. La siguiente tabla enumera las clases de este paquete:
Nombre | Descripción |
---|---|
POP3Folder | Una carpeta POP3 (solo puede ser "INBOX"). |
Mensaje POP3 | Un mensaje POP3. |
POP3SSLStore | Un almacén de mensajes POP3 que utiliza SSL. |
POP3Store | Una tienda de mensajes POP3. |
Algunos puntos a tener en cuenta por encima de este proveedor:
El proveedor de POP3 admite solo una carpeta llamada INBOX. Debido a las limitaciones del protocolo POP3, muchas de las capacidades de la API de JavaMail como notificación de eventos, administración de carpetas, administración de banderas, etc. no están permitidas.
Se accede al proveedor de POP3 a través de las API de JavaMail mediante el nombre de protocolo pop3 o una URL con el formato pop3: // usuario: contraseña @ host: puerto / INBOX " .
POP3 no admite banderas permanentes. Por ejemplo, el indicador Flags.Flag.RECENT nunca se establecerá para mensajes POP3. Depende de la aplicación determinar qué mensajes de un buzón POP3 son nuevos .
POP3 no admite el método Folder.expunge (). Para eliminar y eliminar mensajes, configure la marca Flags.Flag.DELETED en los mensajes y cierre la carpeta con el método Folder.close (true).
POP3 no proporciona una fecha de recepción , por lo que el método getReceivedDate devolverá un valor nulo.
Cuando se accede a los encabezados de un mensaje POP3, el proveedor de POP3 utiliza el comando TOP para recuperar todos los encabezados, que luego se almacenan en caché.
Cuando se accede al contenido de un mensaje POP3, el proveedor de POP3 utiliza el comando RETR para recuperar el mensaje completo.
El método POP3Message.invalidate se puede utilizar para invalidar los datos almacenados en caché sin cerrar la carpeta.
El proveedor de protocolo POP3 admite las siguientes propiedades, que pueden establecerse en el objeto Sesión JavaMail. Las propiedades siempre se establecen como cadenas; la columna Tipo describe cómo se interpreta la cadena.
Nombre | Tipo | Descripción |
---|---|---|
mail.pop3.user | Cuerda | Nombre de usuario predeterminado para POP3. |
mail.pop3.host | Cuerda | El servidor POP3 al que conectarse. |
mail.pop3.port | En t | El puerto del servidor POP3 al que conectarse, si el método connect () no especifica uno explícitamente. El valor predeterminado es 110. |
mail.pop3.connectiontimeout | En t | Valor de tiempo de espera de conexión de socket en milisegundos. El valor predeterminado es el tiempo de espera infinito. |
mail.pop3.timeout | En t | Valor de tiempo de espera de E / S del socket en milisegundos. El valor predeterminado es el tiempo de espera infinito. |
mail.pop3.rsetbeforequit | booleano | Envíe un comando POP3 RSET al cerrar la carpeta, antes de enviar el comando QUIT. El valor predeterminado es falso. |
mail.pop3.message.class | Cuerda | Nombre de clase de una subclase de com.sun.mail.pop3.POP3Message. La subclase se puede utilizar para manejar (por ejemplo) encabezados de tipo de contenido no estándar. La subclase debe tener un constructor público de la forma MyPOP3Message (Folder f, int msgno) throws MessagingException. |
mail.pop3.localaddress | Cuerda | Dirección local (nombre de host) a la que enlazar al crear el socket POP3. Por defecto, la dirección elegida por la clase Socket. |
mail.pop3.localport | En t | Número de puerto local al que enlazar al crear el socket POP3. De forma predeterminada, el número de puerto elegido por la clase Socket. |
mail.pop3.apop.enable | booleano | Si se establece en verdadero, use APOP en lugar de USER / PASS para iniciar sesión en el servidor POP3, si el servidor POP3 admite APOP. APOP envía un resumen de la contraseña en lugar de la contraseña de texto sin cifrar. El valor predeterminado es falso. |
mail.pop3.socketFactory | Fábrica de enchufes | Si se establece en una clase que implementa la interfaz javax.net.SocketFactory, esta clase se utilizará para crear sockets POP3. |
mail.pop3.socketFactory.class | Cuerda | Si se establece, especifica el nombre de una clase que implementa la interfaz javax.net.SocketFactory. Esta clase se utilizará para crear sockets POP3. |
mail.pop3.socketFactory.fallback | booleano | Si se establece en true, si no se crea un socket usando la clase de fábrica de socket especificada, el socket se creará usando la clase java.net.Socket. Por defecto es verdadero. |
mail.pop3.socketFactory.port | En t | Especifica el puerto al que conectarse cuando se utiliza la fábrica de conectores especificada. Si no se configura, se utilizará el puerto predeterminado. |
mail.pop3.ssl.enable | booleano | Si se establece en verdadero, use SSL para conectarse y use el puerto SSL de forma predeterminada. El valor predeterminado es falso para el protocolo "pop3" y verdadero para el protocolo "pop3s". |
mail.pop3.ssl.checkserveridentity | booleano | Si se establece en verdadero, verifique la identidad del servidor según lo especificado por RFC 2595. El valor predeterminado es falso. |
mail.pop3.ssl.trust | Cuerda | Si se establece y no se ha especificado una fábrica de sockets, habilita el uso de MailSSLSocketFactory. Si se establece en "*", todos los hosts son de confianza. Si se establece en una lista de hosts separados por espacios en blanco, esos hosts son de confianza. De lo contrario, la confianza depende del certificado que presente el servidor. |
mail.pop3.ssl.socketFactory | Fábrica de sockets SSL | Si se establece en una clase que amplía la clase javax.net.ssl.SSLSocketFactory, esta clase se utilizará para crear sockets SSL POP3. |
mail.pop3.ssl.socketFactory.class | Cuerda | Si se establece, especifica el nombre de una clase que amplía la clase javax.net.ssl.SSLSocketFactory. Esta clase se utilizará para crear sockets SSL POP3. |
mail.pop3.ssl.socketFactory.port | En t | Especifica el puerto al que conectarse cuando se utiliza la fábrica de conectores especificada. Si no se configura, se utilizará el puerto predeterminado. |
mail.pop3.ssl.protocols | cuerda | Especifica los protocolos SSL que se habilitarán para las conexiones SSL. El valor de la propiedad es una lista separada por espacios en blanco de tokens aceptables para el método javax.net.ssl.SSLSocket.setEnabledProtocols. |
mail.pop3.starttls.enable | booleano | Si es verdadero, habilita el uso del comando STLS (si lo admite el servidor) para cambiar la conexión a una conexión protegida por TLS antes de emitir cualquier comando de inicio de sesión. El valor predeterminado es falso. |
mail.pop3.starttls.required | booleano | Si es verdadero, requiere el uso del comando STLS. Si el servidor no admite el comando STLS o el comando falla, el método de conexión fallará. El valor predeterminado es falso. |
mail.pop3.socks.host | cuerda | Especifica el nombre de host de un servidor proxy SOCKS5 que se utilizará para las conexiones al servidor de correo. |
mail.pop3.socks.port | cuerda | Especifica el número de puerto del servidor proxy SOCKS5. |
mail.pop3.disabletop | booleano | Si se establece en verdadero, el comando POP3 TOP no se utilizará para recuperar los encabezados de los mensajes. El valor predeterminado es falso. |
mail.pop3.forgettopheaders | booleano | Si se establece en verdadero, los encabezados que podrían haberse recuperado mediante el comando POP3 TOP se olvidarán y se reemplazarán por encabezados recuperados como parte del comando POP3 RETR. El valor predeterminado es falso. |
mail.pop3.filecache.enable | booleano | Si se establece en verdadero, el proveedor de POP3 almacenará en caché los datos del mensaje en un archivo temporal en lugar de en la memoria. Los mensajes solo se agregan a la caché cuando se accede al contenido del mensaje. Los encabezados de los mensajes siempre se almacenan en caché en la memoria (a pedido). La caché de archivos se elimina cuando la carpeta se cierra o la JVM termina. El valor predeterminado es falso. |
mail.pop3.filecache.dir | Cuerda | Si la caché de archivos está habilitada, esta propiedad se puede usar para anular el directorio predeterminado que usa el JDK para los archivos temporales. |
mail.pop3.cachewriteto | booleano | Controla el comportamiento del método writeTo en un objeto de mensaje POP3. Si se establece en true, y el contenido del mensaje aún no se ha almacenado en caché, e ignoreList es nulo, el mensaje se almacena en caché antes de escribirse. De lo contrario, el mensaje se transmite directamente al flujo de salida sin almacenarse en caché. El valor predeterminado es falso. |
mail.pop3.keepmessagecontent | booleano | Si esta propiedad se establece en true, se mantendrá una referencia estricta al contenido en caché, lo que evitará que la memoria se reutilice hasta que se cierre la carpeta o se invalide explícitamente el contenido en caché (utilizando el método invalidate). El valor predeterminado es falso. |
En general, las aplicaciones no deberían utilizar las clases de este paquete directamente. En su lugar, deberían utilizar las API definidas por el paquete javax.mail (y subpaquetes). Las aplicaciones nunca deben construir instancias de POP3Store o POP3Folder directamente. En su lugar, deben utilizar el método de sesión getStore para adquirir un objeto Store adecuado y, a partir de ese, adquirir objetos Folder.
En el capítulo Comprobación de correos electrónicos se muestran ejemplos para utilizar el servidor POP3 .