Připojení k IMAP serverům v Pythonu

Aspose.Email pro Python přes .NET zahrnuje ImapClient třída, která vývojářům umožňuje připojit se k poštovním serverům pomocí IMAP (Internet Message Access Protocol). Tato třída umožňuje bezpečnou a efektivní správu e‑mailů v Python aplikacích, včetně načítání, čtení, přesunu, mazání a aktualizace e‑mailových zpráv.

Pomocí IMAP klienta můžete autentizovat uživatele, spravovat složky poštovní schránky, připojovat se přes SSL, nastavovat vlastní časové limity a přistupovat k e‑mailovým účtům přes proxy servery nebo pomocí autentizace CRAM‑MD5.

Základní IMAP připojení

Pro připojení k IMAP serveru pomocí Aspose.Email postupujte podle následujících tří jednoduchých kroků:

  1. Vytvořte instanci ImapClient třída.
  2. Zadejte název hostitele, port, uživatelské jméno a heslo.
  3. Uveďte požadovanou volbu zabezpečení.

Níže uvedená ukázka kódu ukazuje, jak programově připojit k IMAP serveru:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")

Povolit SSL pro IMAP připojení

Pro připojení k IMAP serveru s povoleným SSL nastavte security_options vlastnost pro 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

Připojit se přes SOCKS proxy

Aspose.Email podporuje SOCKS verze 4, 4a a 5 pro připojení přes proxy. Použijte následující kroky pro připojení přes SOCKS proxy:

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")

Připojení k serveru přes HTTP proxy

Aspose.Email také umožňuje IMAP připojení přes HTTP proxy:

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")

Přístup do poštovní schránky pouze pro čtení

Pro zabránění změnám v obsahu poštovní schránky povolte režim pouze pro čtení. read_only vlastnost nastavená na True označuje, že změny nejsou povoleny. Následující ukázka kódu ukazuje, jak tuto vlastnost použít v projektu:

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

Použít autentizaci CRAM-MD5

Pro zvýšené zabezpečení nakonfigurujte klienta tak, aby používal autentizaci CRAM‑MD5:

Následující ukázka kódu demonstruje, jak nakonfigurovat klienta tak, aby akceptoval CRAM‑MD5 jako jednu ze podporovaných metod autentizace pro připojení k IMAP serveru:

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

Nastavit timeout operace

Zabraňte tomu, aby klient čekal neomezeně, nastavením časového limitu (v milisekundách):

Následující úryvek kódu ukazuje, jak nastavit časový limit 60 000 milisekund (60 sekund) pro čekání klienta na odpověď serveru:

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

Nastavit časový limit pozdravu

Řídí, jak dlouho klient čeká během úvodního handshake se serverem pošty.

Následující úryvek kódu ukazuje, jak omezit časový limit pozdravu pomocí vlastnosti greeting_timeout třídy ImapClient třída:

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)

Použít TLS s IMAP klientem

Aspose.Email podporuje TLS a SSL pro zabezpečenou komunikaci. Použijte supported_encryption vlastnost pro definování přijatelých verzí protokolu.

POZNÁMKA: můžete nastavit pouze verze protokolu, které jsou podporovány .NET Framework. Pokud některé verze protokolu nejsou podporovány vaší aktuální verzí .NET Framework, budou ignorovány a přeskočeny. To může vést ke snížení úrovně zabezpečení TLS. V takovém případě nebudou generovány výjimky. Použijte metodu ‘set_supported_encryption_unsafe(value)’, pokud chcete nastavit protokoly bez jakýchkoli kontrol kompatibility.

Níže uvedený příklad kódu ukazuje, jak nastavit TLS 1.3 pro ImapClient instance třídy.

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

V případě, že je specifikovaný šifrovací protokol nepodporován v aktuální verzi .NET Framework, rozdíl ve chování mezi metodou set_supported_encryption_unsafe(value) a vlastností supported_encryption je následující:

  • Pokud je použita vlastnost supported_encryption, e‑mailový klient sníží šifrovací protokol na podporovanou úroveň.
  • Pokud je použita metoda set_supported_encryption_unsafe(value), e‑mailový klient vyvolá výjimky.

Ověřit přihlašovací údaje IMAP serveru

Pro navázání zabezpečeného spojení s IMAP serverem před provedením dalších akcí jsou ověřeny a potvrzeny uživatelské přihlašovací údaje. Metoda validate_credentials třídy ImapClient třída pomáhá ověřit, zda jsou zadané uživatelské jméno a heslo správné. Pokud jsou přihlašovací údaje platné, klient se může úspěšně autentizovat na IMAP serveru. Následující ukázka kódu ukazuje, jak tuto metodu implementovat do vašeho projektu:

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

Povolit zaznamenávání aktivit IMAP

Zaznamenávání aktivit zahrnuje zapisování připojení k serveru, podrobností o přenosu odeslaných a přijatých zpráv, chybových zpráv během zpracování e‑mailů a jakýchkoli dalších akcí prováděných klientem nebo serverem. Pro sledování aktivit IMAP klienta a interakcí se serverem použijte následující ukázku kódu, která používá vlastnost log_file_name třídy ImapClient třída pro zaznamenávání informací do zadaného souboru protokolu:

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