Verbinding maken met IMAP-servers in Python
Aspose.Email voor Python via .NET bevat de ImapClient klasse, die ontwikkelaars in staat stelt verbinding te maken met mailservers via IMAP (Internet Message Access Protocol). Deze klasse maakt veilig en efficiënt e-mailbeheer mogelijk binnen Python-toepassingen, inclusief het ophalen, lezen, verplaatsen, verwijderen en bijwerken van e-mailberichten.
Met de IMAP-client kun je gebruikers authenticeren, mailboxmappen beheren, via SSL verbinden, aangepaste time-outs instellen en e-mailaccounts benaderen via proxyservers of CRAM-MD5-authenticatie.
Basis IMAP-verbinding
Om verbinding te maken met een IMAP-server met Aspose.Email, volg deze drie eenvoudige stappen:
- Maak een instantie van de ImapClient klasse.
- Geef de hostnaam, poort, gebruikersnaam en wachtwoord op.
- Geef de gewenste beveiligingsoptie op.
Het onderstaande codevoorbeeld toont hoe je programmatically verbinding maakt met een IMAP-server:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
SSL inschakelen voor IMAP-verbindingen
Om verbinding te maken met een SSL-ondersteunde IMAP-server, stel je de security_options eigenschap naar 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
Verbinden via SOCKS-proxy
Aspose.Email ondersteunt SOCKS versies 4, 4a en 5 voor proxy-gebaseerde verbindingen. Volg de volgende stappen om via een SOCKS-proxy te 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")
Verbinden met Server via HTTP‑Proxy
Aspose.Email staat ook IMAP-verbindingen via een HTTP-proxy toe:
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")
Alleen-lezen mailboxtoegang
Om wijzigingen in de inhoud van de mailbox te voorkomen, schakel je de alleen-lezen-modus in. De read_only eigenschap die op True is ingesteld, geeft aan dat wijzigingen niet zijn toegestaan. Het onderstaande codevoorbeeld laat zien hoe je deze eigenschap in een project gebruikt:
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-authenticatie gebruiken
Voor verbeterde beveiliging configureer je de client om CRAM-MD5-authenticatie te gebruiken:
Het onderstaande codevoorbeeld laat zien hoe je de client configureert om CRAM-MD5 te accepteren als een van de ondersteunde authenticatiemethoden voor het verbinden met een IMAP-server:
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
Bewerkings-tijdslimiet instellen
Voorkom dat de client oneindig wacht door een tijdslimiet in te stellen (in milliseconden):
Het onderstaande codefragment toont hoe je een tijdslimiet van 60.000 milliseconden (60 seconden) instelt zodat de client op de serverrespons wacht:
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
Begroetingstijdslimiet instellen
Bepaal hoe lang de client wacht tijdens de initiële handshake met de mailserver.
Het onderstaande codefragment toont hoe je de begroetingstijdslimiet kunt beperken met behulp van de greeting_timeout-eigenschap van de 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 gebruiken met de IMAP-client
Aspose.Email ondersteunt TLS en SSL voor beveiligde communicatie. Gebruik de supported_encryption eigenschap om aanvaardbare protocolversies te definiëren.
OPMERKING: je kunt alleen die protocollen instellen die ondersteund worden door het .net framework. Als sommige protocollen niet worden ondersteund door je huidige versie van .NET framework, worden ze genegeerd en overgeslagen. Dit kan leiden tot een verlaging van het TLS-beveiligingsniveau. In dit geval worden er geen uitzonderingen gegenereerd. Gebruik de ‘set_supported_encryption_unsafe(value)’-methode als je de protocollen zonder compatibiliteitscontroles wilt instellen.
Het onderstaande codevoorbeeld laat zien hoe je TLS 1.3 instelt voor ImapClient klasse‑instantie.
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
In het geval dat een opgegeven encryptieprotocol niet wordt ondersteund in de huidige versie van .NET Framework, is het verschil in gedrag tussen de set_supported_encryption_unsafe(value)-methode en de supported_encryption-eigenschap als volgt:
- Als de supported_encryption-eigenschap wordt gebruikt, downgradeert de e-mailclient het encryptieprotocol naar een ondersteund niveau.
- Als de set_supported_encryption_unsafe(value)-methode wordt gebruikt, gooit de e-mailclient uitzonderingen.
IMAP-serverreferenties valideren
Om een beveiligde verbinding met een IMAP-server tot stand te brengen voordat verdere acties worden ondernomen, worden de gebruikersreferenties gecontroleerd en gevalideerd. De validate_credentials-methode van de ImapClient klasse helpt te controleren of de opgegeven gebruikersnaam en wachtwoord correct zijn. Als de inloggegevens inderdaad geldig zijn, kan de client zich succesvol authenticeren bij de IMAP-server. Het onderstaande codevoorbeeld toont hoe je deze methode in je project implementeert:
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-activiteitlogboek inschakelen
Activiteitenlogboek houdt het registreren van serververbindingen, transmissiedetails van verzonden en ontvangen berichten, foutmeldingen tijdens de e-mailverwerking, en alle andere acties die door de client of server worden uitgevoerd. Om IMAP-clientactiviteit en interacties met de server bij te houden, gebruik je het volgende codevoorbeeld dat de log_file_name-eigenschap van de ImapClient klasse om de informatie naar het opgegeven logbestand te loggen:
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