Anslut till IMAP-servrar i Python
Aspose.Email för Python via .NET inkluderar ImapClient klass som låter utvecklare ansluta till e‑postservrar med IMAP (Internet Message Access Protocol). Denna klass möjliggör säker och effektiv e‑posthantering i Python‑applikationer, inklusive hämtning, läsning, flytt, radering och uppdatering av e‑postmeddelanden.
Med IMAP-klienten kan du autentisera användare, hantera brevlådeformappar, ansluta via SSL, ange anpassade timeouter och komma åt e‑postkonton via proxyservrar eller CRAM-MD5-autentisering.
Grundläggande IMAP-anslutning
För att ansluta till en IMAP-server med Aspose.Email, följ dessa tre enkla steg:
- Skapa en instans av ImapClient klass.
- Ange värdnamn, port, användarnamn och lösenord.
- Ange önskad säkerhetsoption.
Kodexemplet nedan visar hur du ansluter till en IMAP-server programatiskt:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
Aktivera SSL för IMAP-anslutningar
För att ansluta till en SSL-aktiverad IMAP-server, ange security_options egenskap till 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
Anslut via SOCKS-proxy
Aspose.Email stödjer SOCKS version 4, 4a och 5 för proxybaserade anslutningar. Följ stegen nedan för att ansluta via en 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")
Ansluta till server via HTTP‑proxy
Aspose.Email tillåter också IMAP-anslutningar via en 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")
Åtkomst till brevlåda i skrivskyddat läge
För att förhindra ändringar av brevlådens innehåll, aktivera läsläge. The read_only egenskap satt till True indikerar att ändringar inte är tillåtna. Följande kodexempel visar hur du använder denna egenskap i ett projekt:
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
Använd CRAM-MD5-autentisering
För förbättrad säkerhet, konfigurera klienten att använda CRAM-MD5-autentisering:
Följande kodexempel visar hur du konfigurerar klienten att acceptera CRAM-MD5 som en av de stödade autentiseringsmetoderna för anslutning till en 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
Ställ in operationstimeout
Förhindra att klienten väntar obegränsat genom att ange en timeout (i millisekunder):
Följande kodsnutt visar hur du anger en timeout på 60 000 millisekunder (60 sekunder) för att klienten ska vänta på serversvaret:
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
Ställ in greeting timeout
Styr hur länge klienten väntar under den initiala handskakningen med e‑postservern.
Följande kodsnutt visar hur du begränsar greeting timeout med hjälp av egenskapen greeting_timeout i ImapClient klass:
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)
Använd TLS med IMAP-klienten
Aspose.Email stödjer TLS och SSL för säker kommunikation. Använd supported_encryption egenskap för att definiera acceptabla protokollversioner.
OBS! du kan endast ange de protokollversioner som stöds av .NET Framework. Om vissa protokollversioner inte stöds av din nuvarande .NET Framework-version, kommer de att ignoreras och hoppas över. Detta kan leda till en sänkning av TLS-säkerhetsnivån. I så fall genereras inga undantag. Använd metoden ‘set_supported_encryption_unsafe(value)’ om du vill ange protokollen utan några kompatibilitetskontroller.
Kodexemplet nedan visar hur du ställer in TLS 1.3 för ImapClient klassinstans.
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
Om ett specificerat krypteringsprotokoll inte stöds i den nuvarande versionen av .NET Framework, är skillnaden i beteende mellan metoden set_supported_encryption_unsafe(value) och egenskapen supported_encryption följande:
- Om egenskapen supported_encryption används, sänker e‑postklienten krypteringsprotokollet till en stödd nivå.
- Om metoden set_supported_encryption_unsafe(value) används, kastar e‑postklienten undantag.
Validera IMAP-serveruppgifter
För att etablera en säker anslutning till en IMAP-server innan vidare åtgärder, kontrolleras och valideras användaruppgifterna. Metoden validate_credentials i ImapClient klass hjälper till att kontrollera om det angivna användarnamnet och lösenordet är korrekta. Om autentiseringsuppgifterna är giltiga kan klienten autentisera mot IMAP-servern. Följande kodexempel visar hur du implementerar denna metod i ditt projekt:
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
Aktivera IMAP-aktivitetsloggning
Aktivitetsloggning innebär att registrera serveranslutningar, överföringsdetaljer för skickade och mottagna meddelanden, felmeddelanden under e‑postbehandling, samt övriga åtgärder som utförs av klienten eller servern. För att spåra IMAP-klientens aktivitet och interaktioner med servern, använd följande kodexempel som använder egenskapen log_file_name i ImapClient klass för att logga informationen till den angivna loggfilen:
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