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ů:
- Vytvořte instanci ImapClient třída.
- Zadejte název hostitele, port, uživatelské jméno a heslo.
- 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