Conectar al servidor POP3

El Pop3Client clase permite a las aplicaciones gestionar buzones de correo usando el Protocolo de Oficina de Correos, Versión 3 (POP3). Para conectar a un servidor, use el Pop3Client clase. El Pop3Client clase es la principal entrada para desarrolladores que desean agregar gestión POP3 a sus aplicaciones .NET. Este artículo explica cómo usarla. Para conectar a un servidor POP3:

  1. Cree una instancia de la Pop3Client clase.
  2. Especifique el host, nombre de usuario y contraseña en el Pop3Client instancia.

El siguiente fragmento de código muestra cómo conectarse con el servidor POP3.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Create an instance of the Pop3Client class
Pop3Client client = new Pop3Client();

// Specify host, username, password, Port and SecurityOptions for your client
client.setHost("pop.gmail.com");
client.setUsername("your.username@gmail.com");
client.setPassword("your.password");
client.setPort(995);
client.setSecurityOptions(SecurityOptions.Auto);
System.out.println("Connected to POP3 server.");

Conectando a servidor SSL

Conectando a un servidor POP3 describió cómo conectar a un servidor POP3 en tres simples pasos:

  1. Cree una instancia de la Pop3Client clase.
  2. Especifique el host, nombre de usuario y contraseña.

El proceso para conectar a un servidor POP3 con SSL habilitado es similar pero requiere que establezca algunas propiedades adicionales:

Para conectar a un servidor POP3 con SSL habilitado, use el Pop3Client clase y establecer el SecurityOptions y propiedades de Puerto. El siguiente fragmento de código muestra cómo conectarse a un servidor POP3 con SSL habilitado.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Create an instance of the Pop3Client class
Pop3Client client = new Pop3Client();

// Specify host, username and password, Port and SecurityOptions for your client
client.setHost("pop.gmail.com");
client.setUsername("your.username@gmail.com");
client.setPassword("your.password");
client.setPort(995);
client.setSecurityOptions(SecurityOptions.Auto);
System.out.println("Connecting to POP3 server using SSL.");

Conectando con un servidor APOP

POP significa Protocolo de Oficina de Correos. APOP significa Protocolo de Oficina de Correos Autenticado. APOP es una versión ampliada de la configuración del servidor POP3 que cifra su nombre de usuario y contraseña y utiliza un mecanismo de autenticación diseñado para proteger la contraseña de su cuenta POP3 al revisar el correo. La autenticación APOP no requiere que la contraseña de la cuenta se envíe como texto plano al servidor de correo POP3.

Conectando al servidor mediante proxy

Los servidores proxy son muy comunes para comunicarse con el mundo exterior. En esos casos, se utilizan direcciones de proxy para que los clientes de correo accedan a los buzones a través de Internet. Aspose.Email ofrece soporte para las versiones 4, 4a y 5 del protocolo proxy SOCKS. Este artículo proporciona un ejemplo funcional de recuperación de correo usando un servidor proxy de correo. Para recuperar correo mediante un servidor proxy:

  1. Inicializar Proxy con la información requerida, es decir, dirección del proxy, puerto y versión de SOCKS.
  2. Inicializar Pop3Client con la dirección del host, nombre de usuario, contraseña y cualquier otra configuración.
  3. Establezca la propiedad Proxy del cliente a la Proxy objeto creado arriba.

El siguiente fragmento de código muestra cómo recuperar correos electrónicos a través del servidor proxy.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Create an instance of the Pop3Client class
Pop3Client client = new Pop3Client("pop.domain.com", "username", "password");

// Set proxy address, Port and Proxy
String proxyAddress = "192.168.203.142";
int proxyPort = 1080;
SocksProxy proxy = new SocksProxy(proxyAddress, proxyPort, SocksVersion.SocksV5);
client.setProxy(proxy);
Pop3MailboxInfo mailboxInfo = client.getMailboxInfo();

Conectando a un servidor mediante proxy HTTP

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

HttpProxy proxy = new HttpProxy("18.222.124.59", 8080);
try (Pop3Client client = new Pop3Client("imap.domain.com", "username", "password")) {
    client.setProxy(proxy);
    Pop3MailboxInfo mailboxInfo = client.getMailboxInfo();
}

Personalizar mecanismo de autenticación

Recuperar la lista de mecanismos de autenticación que soporta el servidor POP3 usando el getSupportedAuthentication método del Pop3Client clase. Este método permite al cliente determinar qué métodos de autenticación están disponibles para establecer una conexión segura con el servidor. Luego, usando el setAllowedAuthentication método que obtiene (o establece) la enumeración de los tipos de autenticación permitidos por el usuario, elija el mecanismo de autenticación más apropiado para la comunicación cliente-servidor. Esto le permite establecer el método de autenticación para el cliente de correo explícitamente.

El siguiente ejemplo de código muestra cómo personalizar la autenticación del cliente de correo electrónico:

pop3Client.setAllowedAuthentication(Pop3KnownAuthenticationType.Plain);

Soporte del protocolo OAuth 2.0 para autorización

OAuth 2.0 proporciona autorización

Pop3Client admite OAuth 2.0 proporcionando formas específicas de autorización para aplicaciones. Los siguientes constructores se usan para inicializar POP3Client con OAuth:

public Pop3Client(

            String host, /*The host name*/

            int port, /*The port number*/ 

            String username, /*The user name*/

            ITokenProvider tokenProvider, /*TokenProvider allowing to retrieve access token*/

            /*SecurityOptions*/int securityOptions) /*Security mode for a mail client*/



public Pop3Client(

            String host, /*The host name*/

            int port, /*The port number*/

            String username, /*The user name*/

            String authInfo, /*The user password or XOAUTH2 access token*/

            boolean useOAuth, /*Defines whether SASL XOAUTH2 mechanism is used to login to the server*/

            /*SecurityOptions*/int securityOptions) /*Security mode for a mail client*/

Validar credenciales del servidor de correo sin enviar correo electrónico

A veces es necesario verificar credenciales sin enviar un correo electrónico. Aspose.Email proporciona el validateCredentials() método para realizar esta operación. Si la validación es exitosa, se ejecuta el código dentro de la sentencia if, típicamente usado para realizar acciones adicionales o recuperar datos del servidor IMAP. El siguiente fragmento de código demuestra la validación de credenciales sin enviar un correo electrónico:

try (Pop3Client pop3Client = new Pop3Client(
        server.Pop3Url, server.Pop3Port, "userName", "password", SecurityOptions.Auto)) {
    pop3Client.setTimeout(4000);

    if (pop3Client.validateCredentials()) {
        // to do something
    }
}

Uso de autenticación CRAM-M5 para conectar a un servidor

Para garantizar una autenticación y comunicación seguras con el servidor POP3, puede especificar y aplicar el uso de CRAM-MD5 como método de autenticación permitido para el cliente POP3. El siguiente fragmento de código muestra cómo configurar el tipo de autenticación permitido para el Pop3Client:

popClient.setAllowedAuthentication(Pop3KnownAuthenticationType.CramMD5);

Cómo establecer tiempo de espera para operaciones de correo

Cada operación de correo lleva tiempo dependiendo de muchos factores (retardos de red, tamaño de datos, rendimiento del servidor, etc.). Puede establecer un tiempo de espera para todas las operaciones de correo. El ejemplo de código a continuación le muestra cómo hacerlo usando el Tiempo de espera propiedad. Nota: no debe establecer valores grandes para evitar largas esperas en su aplicación.

try (Pop3Client pop3Client = new Pop3Client("host", 995, "username", "password", SecurityOptions.Auto))
{
    pop3Client.setTimeout(60000); // 60 seconds

    // some code...
}