Verbindung zu IMAP-Servern in Python

Aspose.Email für Python via .NET enthält die ImapClient Klasse, die Entwicklern ermöglicht, über das IMAP (Internet Message Access Protocol) eine Verbindung zu Mail-Servern herzustellen. Diese Klasse ermöglicht ein sicheres und effizientes E‑Mail‑Management in Python‑Anwendungen, einschließlich Abrufen, Lesen, Verschieben, Löschen und Aktualisieren von E‑Mail‑Nachrichten.

Mit dem IMAP-Client können Sie Benutzer authentifizieren, Postfachordner verwalten, über SSL verbinden, benutzerdefinierte Timeouts festlegen und auf E-Mail-Konten über Proxy-Server oder CRAM‑MD5‑Authentifizierung zugreifen.

Grundlegende IMAP-Verbindung

Um mit Aspose.Email eine Verbindung zu einem IMAP-Server herzustellen, folgen Sie diesen drei einfachen Schritten:

  1. Erstellen Sie eine Instanz von dem ImapClient Klasse.
  2. Geben Sie Hostname, Port, Benutzername und Passwort an.
  3. Geben Sie die gewünschte Sicherheitsoption an.

Das folgende Codebeispiel zeigt, wie man programmgesteuert eine Verbindung zu einem IMAP-Server herstellt:

import aspose.email as ae

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

SSL für IMAP-Verbindungen aktivieren

Um eine Verbindung zu einem SSL‑aktivierten IMAP-Server herzustellen, setzen Sie die security_options Eigenschaft zu 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

Über SOCKS-Proxy verbinden

Aspose.Email unterstützt die SOCKS‑Versionen 4, 4a und 5 für proxybasierte Verbindungen. Verwenden Sie die folgenden Schritte, um über einen SOCKS‑Proxy zu verbinden:

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

Verbindung zum Server über HTTP‑Proxy

Aspose.Email ermöglicht ebenfalls IMAP-Verbindungen über einen 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")

Nur‑Lese‑Zugriff auf das Postfach

Um Änderungen am Postfachinhalt zu verhindern, aktivieren Sie den Nur‑Lese‑Modus. Die read_only Auf True gesetzte Eigenschaft bedeutet, dass Änderungen nicht erlaubt sind. Das folgende Codebeispiel zeigt, wie diese Eigenschaft in einem Projekt verwendet wird:

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

CRAM‑MD5-Authentifizierung verwenden

Für erhöhte Sicherheit konfigurieren Sie den Client, CRAM‑MD5-Authentifizierung zu verwenden:

Das folgende Codebeispiel demonstriert, wie der Client so konfiguriert wird, dass er CRAM‑MD5 als eine der unterstützten Authentifizierungsmethoden für die Verbindung zu einem IMAP-Server akzeptiert:

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

Operations‑Timeout festlegen

Verhindern Sie, dass der Client unbegrenzt wartet, indem Sie einen Timeout (in Millisekunden) setzen:

Das folgende Code‑Snippet zeigt, wie ein Timeout‑Intervall von 60.000 Millisekunden (60 Sekunden) festgelegt wird, damit der Client auf die Serverantwort wartet:

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

Begrüßungs‑Timeout festlegen

Steuern Sie, wie lange der Client während des initialen Handshakes mit dem Mail-Server wartet.

Das folgende Code‑Snippet zeigt, wie Sie den Begrüßungs‑Timeout mittels der greeting_timeout-Eigenschaft des ImapClient Klasse:

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)

TLS mit dem IMAP-Client verwenden

Aspose.Email unterstützt TLS und SSL für sichere Kommunikation. Verwenden Sie die supported_encryption Eigenschaft, um akzeptable Protokollversionen zu definieren.

HINWEIS: Sie können nur jene Protokollversionen festlegen, die vom .NET Framework unterstützt werden. Wenn einige Protokollversionen von Ihrer aktuellen .NET Framework-Version nicht unterstützt werden, werden sie ignoriert und übersprungen. Dies kann zu einer Herabstufung des TLS-Sicherheitsniveaus führen. In diesem Fall werden keine Ausnahmen erzeugt. Bitte verwenden Sie die Methode ‘set_supported_encryption_unsafe(value)’, wenn Sie die Protokolle ohne Kompatibilitätsprüfungen festlegen möchten.

Das untenstehende Codebeispiel zeigt, wie Sie TLS 1.3 für ImapClient Klasseninstanz.

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

Falls ein angegebenes Verschlüsselungsprotokoll in der aktuellen Version des .NET Framework nicht unterstützt wird, besteht der Unterschied im Verhalten zwischen der set_supported_encryption_unsafe(value)-Methode und der supported_encryption-Eigenschaft wie folgt:

  • Wenn die supported_encryption-Eigenschaft verwendet wird, reduziert der E-Mail-Client das Verschlüsselungsprotokoll auf ein unterstütztes Niveau.
  • Wenn die set_supported_encryption_unsafe(value)-Methode verwendet wird, wirft der E-Mail-Client Ausnahmen.

IMAP-Server-Anmeldeinformationen validieren

Um vor weiteren Aktionen eine sichere Verbindung zu einem IMAP-Server herzustellen, werden die Benutzeranmeldeinformationen überprüft und validiert. Die validate_credentials-Methode der ImapClient Klasse hilft zu prüfen, ob der angegebene Benutzername und das Passwort korrekt sind. Sind die Anmeldeinformationen gültig, kann sich der Client erfolgreich beim IMAP-Server authentifizieren. Das folgende Codebeispiel zeigt, wie Sie diese Methode in Ihrem Projekt implementieren:

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

IMAP-Aktivitätsprotokoll aktivieren

Aktivitätsprotokollierung beinhaltet das Aufzeichnen von Serververbindungen, Übertragungsdetails gesendeter und empfangener Nachrichten, Fehlermeldungen während der E-Mail-Verarbeitung und aller anderen Aktionen, die vom Client oder Server durchgeführt werden. Um die Aktivität des IMAP-Clients und die Interaktionen mit dem Server zu verfolgen, verwenden Sie das folgende Codebeispiel, das die log_file_name-Eigenschaft des ImapClient Klasse, um die Informationen in die angegebene Protokolldatei zu schreiben:

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