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:
- Erstellen Sie eine Instanz von dem ImapClient Klasse.
- Geben Sie Hostname, Port, Benutzername und Passwort an.
- 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