Conectar a servidores IMAP em Python
Aspose.Email para Python via .NET inclui o ImapClient classe, que permite aos desenvolvedores conectar-se a servidores de e‑mail usando o IMAP (Internet Message Access Protocol). Esta classe possibilita gerenciamento seguro e eficiente de e‑mails em aplicações Python, incluindo recuperação, leitura, movimentação, exclusão e atualização de mensagens.
Usando o cliente IMAP, você pode autenticar usuários, gerenciar pastas de caixa de correio, conectar através de SSL, definir tempos limites personalizados e acessar contas de e‑mail através de servidores proxy ou autenticação CRAM-MD5.
Conexão IMAP básica
Para conectar a um servidor IMAP usando Aspose.Email, siga estes três passos simples:
- Crie uma instância do ImapClient classe.
- Especifique o hostname, porta, nome de usuário e senha.
- Especifique a opção de segurança desejada.
O exemplo de código abaixo mostra como conectar ao servidor IMAP programaticamente:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
Habilitar SSL para conexões IMAP
Para conectar a um servidor IMAP com SSL habilitado, defina o security_options propriedade 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 via proxy SOCKS
Aspose.Email suporta SOCKS versões 4, 4a e 5 para conexões via proxy. Use os passos a seguir para conectar através de um 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")
Conectando ao Servidor via Proxy HTTP
Aspose.Email também permite conexões IMAP através de um 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")
Acesso somente leitura à caixa de correio
Para impedir alterações no conteúdo da caixa de correio, habilite o modo somente leitura. O read_only propriedade definida como True indica que alterações não são permitidas. O exemplo de código a seguir mostra como usar essa propriedade em um projeto:
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 autenticação CRAM-MD5
Para maior segurança, configure o cliente para usar autenticação CRAM-MD5:
O exemplo de código a seguir demonstra como configurar o cliente para aceitar CRAM-MD5 como um dos métodos de autenticação suportados ao conectar-se a um 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
Definir tempo limite da operação
Evite que o cliente espere indefinidamente definindo um tempo limite (em milissegundos):
O trecho de código a seguir mostra como definir um período de tempo limite de 60.000 milissegundos (60 segundos) para que o cliente aguarde a resposta do 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
Definir tempo limite de saudação
Controle quanto tempo o cliente aguarda durante o handshake inicial com o servidor de e‑mail.
O trecho de código a seguir mostra como restringir o tempo limite de saudação usando a propriedade greeting_timeout da ImapClient classe:
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 com o cliente IMAP
Aspose.Email suporta TLS e SSL para comunicação segura. Use a supported_encryption propriedade para definir versões de protocolo aceitáveis.
NOTA: você pode definir somente as versões do protocolo que são suportadas pelo .NET Framework. Se algumas versões do protocolo não forem suportadas pela sua versão atual do .NET Framework, elas serão ignoradas e puladas. Isso pode levar ao rebaixamento do nível de segurança TLS. Nesse caso, exceções não serão geradas. Use o método ‘set_supported_encryption_unsafe(value)’ se quiser definir os protocolos sem nenhuma verificação de compatibilidade.
O exemplo de código abaixo mostra como definir TLS 1.3 para ImapClient instância de classe.
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
Caso um protocolo de criptografia especificado não seja suportado na versão atual do .NET Framework, a diferença de comportamento entre o método set_supported_encryption_unsafe(value) e a propriedade supported_encryption é a seguinte:
- Se a propriedade supported_encryption for usada, o cliente de e‑mail rebaixa o protocolo de criptografia para um nível suportado.
- Se o método set_supported_encryption_unsafe(value) for usado, o cliente de e‑mail lança exceções.
Validar credenciais do servidor IMAP
Para estabelecer uma conexão segura com um servidor IMAP antes de prosseguir, as credenciais do usuário são verificadas e validadas. O método validate_credentials da ImapClient classe ajuda a verificar se o nome de usuário e a senha fornecidos estão corretos. Se as credenciais forem realmente válidas, o cliente pode autenticar-se com sucesso no servidor IMAP. O exemplo de código a seguir mostra como implementar esse método em seu projeto:
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 atividade IMAP
O registro de atividades envolve registrar conexões ao servidor, detalhes de transmissão das mensagens enviadas e recebidas, mensagens de erro durante o processamento de e‑mail e quaisquer outras ações realizadas pelo cliente ou servidor. Para monitorar a atividade do cliente IMAP e interações com o servidor, use o exemplo de código a seguir que utiliza a propriedade log_file_name da ImapClient classe para registrar as informações no arquivo de log 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