Conectar a servidores IMAP en Python
Aspose.Email para Python via .NET incluye el ImapClient clase, que permite a los desarrolladores conectar a servidores de correo usando IMAP (Internet Message Access Protocol). Esta clase permite una gestión segura y eficiente del correo electrónico dentro de aplicaciones Python, incluyendo la recuperación, lectura, movimiento, eliminación y actualización de mensajes de correo.
Usando el cliente IMAP, puede autenticar usuarios, gestionar carpetas del buzón, conectarse mediante SSL, establecer tiempos de espera personalizados y acceder a cuentas de correo a través de servidores proxy o autenticación CRAM-MD5.
Conexión IMAP básica
Para conectarse a un servidor IMAP usando Aspose.Email, siga estos tres simples pasos:
- Cree una instancia de la ImapClient clase.
- Especifique el nombre de host, puerto, nombre de usuario y contraseña.
- Especifique la opción de seguridad deseada.
El siguiente ejemplo de código muestra cómo conectarse al servidor IMAP programáticamente:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
Habilitar SSL para conexiones IMAP
Para conectarse a un servidor IMAP con SSL habilitado, establezca el security_options propiedad para SSLImplicit:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
# Set the security mode to implicit
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT
Conectar vía proxy SOCKS
Aspose.Email soporta SOCKS versiones 4, 4a y 5 para conexiones mediante proxy. Siga los siguientes pasos para conectarse a través de un proxy SOCKS:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", "username", "password")
client.security_options = ae.clients.SecurityOptions.AUTO
proxy = ae.clients.SocksProxy("192.168.203.142", 1080, ae.clients.SocksVersion.SOCKS_V5)
client.proxy = proxy
client.select_folder("Inbox")
Conectándose al servidor vía proxy HTTP
Aspose.Email también permite conexiones IMAP a través de un proxy HTTP:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", "username", "password")
client.proxy = ae.clients.HttpProxy("18.222.124.59", 8080)
client.select_folder("Inbox")
Acceso a buzón de solo lectura
Para evitar cambios en el contenido del buzón, habilite el modo de solo lectura. El read_only la propiedad establecida en True indica que no se permiten cambios. El siguiente ejemplo de código muestra cómo usar esta propiedad en un proyecto:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT
client.read_only = True
Usar autenticación CRAM-MD5
Para mayor seguridad, configure el cliente para usar autenticación CRAM-MD5:
El siguiente ejemplo de código muestra cómo configurar el cliente para aceptar CRAM-MD5 como uno de los métodos de autenticación soportados al conectarse a un servidor IMAP:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.allowed_authentication = ae.clients.imap.ImapKnownAuthenticationType.CRAM_MD5
Establecer tiempo de espera de operación
Evite que el cliente espere indefinidamente estableciendo un tiempo de espera (en milisegundos):
El siguiente fragmento de código muestra cómo establecer un período de tiempo de espera de 60,000 milisegundos (60 segundos) para que el cliente espere la respuesta del servidor:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
# 60 seconds
client.timeout = 60000
Establecer tiempo de espera de saludo
Controla cuánto tiempo espera el cliente durante el apretón de manos inicial con el servidor de correo.
El siguiente fragmento de código muestra cómo restringir el tiempo de espera de saludo usando la propiedad greeting_timeout de la ImapClient clase:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.greeting_timeout = 4000
client.select_folder(ae.clients.imap.ImapFolderInfo.IN_BOX)
Usar TLS con el cliente IMAP
Aspose.Email soporta TLS y SSL para comunicación segura. Use el supported_encryption propiedad para definir versiones de protocolo aceptables.
NOTA: solo puede establecer aquellas versiones del protocolo que son compatibles con .NET Framework. Si algunas versiones del protocolo no son compatibles con su versión actual de .NET Framework, se ignorarán y omitirán. Esto puede llevar a una degradación del nivel de seguridad TLS. En este caso, no se generarán excepciones. Por favor, use el método ‘set_supported_encryption_unsafe(value)’ si desea establecer los protocolos sin ninguna verificación de compatibilidad.
El ejemplo de código a continuación le muestra cómo establecer TLS 1.3 para ImapClient instancia de clase.
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS13
En caso de que un protocolo de cifrado especificado no sea compatible con la versión actual de .NET Framework, la diferencia de comportamiento entre el método set_supported_encryption_unsafe(value) y la propiedad supported_encryption es la siguiente:
- Si se usa la propiedad supported_encryption, el cliente de correo degrada el protocolo de cifrado a un nivel compatible.
- Si se usa el método set_supported_encryption_unsafe(value), el cliente de correo lanza excepciones.
Validar credenciales del servidor IMAP
Para establecer una conexión segura a un servidor IMAP antes de realizar más acciones, se verifican y validan las credenciales del usuario. El método validate_credentials de la ImapClient la clase ayuda a comprobar si el nombre de usuario y contraseña proporcionados son correctos. Si las credenciales son válidas, el cliente puede autenticarse con éxito en el servidor IMAP. El siguiente ejemplo de código muestra cómo implementar este método en su proyecto:
import aspose.email as ae
with ae.clients.imap.ImapClient("your imap server", 993, "your username", "your password", ae.clients.SecurityOptions.AUTO) as client:
client.timeout = 4000
if client.validate_credentials():
# Further actions
Habilitar registro de actividad IMAP
El registro de actividad implica registrar conexiones al servidor, detalles de transmisión de mensajes enviados y recibidos, mensajes de error durante el procesamiento de correo electrónico y cualquier otra acción realizada por el cliente o el servidor. Para rastrear la actividad del cliente IMAP e interacciones con el servidor, use el siguiente ejemplo de código que utiliza la propiedad log_file_name de la ImapClient clase para registrar la información en el archivo de registro especificado:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
# Set the path to the log file using the LogFileName property.
client.log_file_name = "C:\\Aspose.Email.IMAP.log"
# Set the UseDateInLogFileName property if it is necessary.
client.use_date_in_log_file_name = False