Python'da IMAP Sunucularına Bağlanma

Aspose.Email for Python via .NET, şunları içerir: ImapClient sınıfı, geliştiricilerin IMAP (Internet Message Access Protocol) kullanarak posta sunucularına bağlanmasını sağlar. Bu sınıf, Python uygulamaları içinde güvenli ve verimli e-posta yönetimini mümkün kılar; mesajları almak, okumak, taşımak, silmek ve güncellemek gibi işlemler dahil.

IMAP istemcisini kullanarak kullanıcıları kimlik doğrulayabilir, posta kutusu klasörlerini yönetebilir, SSL üzerinden bağlanabilir, özel zaman aşımı ayarları yapabilir ve proxy sunucuları veya CRAM-MD5 kimlik doğrulamasıyla e-posta hesaplarına erişebilirsiniz.

Temel IMAP Bağlantısı

Aspose.Email kullanarak bir IMAP sunucusuna bağlanmak için bu üç basit adımı izleyin:

  1. Şunun bir örneğini oluştur ImapClient sınıf.
  2. Ana bilgisayar adını, portu, kullanıcı adını ve şifreyi belirtin.
  3. İstenen güvenlik seçeneğini belirtin.

Aşağıdaki kod örneği, programatik olarak IMAP sunucusuna nasıl bağlanılacağını gösterir:

import aspose.email as ae

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

IMAP Bağlantıları için SSL’yi Etkinleştir

SSL etkin bir IMAP sunucusuna bağlanmak için, security_options SSLImplicit özelliği:

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

SOCKS Proxy ile Bağlan

Aspose.Email, proxy tabanlı bağlantılar için SOCKS 4, 4a ve 5 sürümlerini destekler. SOCKS proxy üzerinden bağlanmak için aşağıdaki adımları izleyin:

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

HTTP Proxy ile Sunucuya Bağlanma

Aspose.Email ayrıca HTTP proxy üzerinden IMAP bağlantılarına da izin verir:

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

Yalnızca Okunur Posta Kutusu Erişimi

Posta kutusu içeriğinde değişiklikleri önlemek için yalnızca okuma modunu etkinleştirin. read_only True olarak ayarlanan özellik, değişikliklere izin verilmediğini gösterir. Aşağıdaki kod örneği, bu özelliğin bir projede nasıl kullanılacağını gösterir:

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 Kimlik Doğrulamasını Kullan

Güvenliği artırmak için, istemcinin CRAM-MD5 kimlik doğrulamasını kullanacak şekilde yapılandırın:

Aşağıdaki kod örneği, istemcinin IMAP sunucusuna bağlanırken desteklenen kimlik doğrulama yöntemlerinden biri olarak CRAM-MD5’i kabul edecek şekilde nasıl yapılandırılacağını gösterir:

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

İşlem Zaman Aşımını Ayarla

İstemcinin süresiz beklemesini engellemek için bir zaman aşımı (milisaniye cinsinden) ayarlayın:

Aşağıdaki kod parçacığı, istemcinin sunucu yanıtını beklemek için 60.000 milisaniye (60 saniye) zaman aşımı süresi ayarlamayı gösterir:

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

Selamlama Zaman Aşımını Ayarla

İstemcinin posta sunucusuyla ilk el sıkışma sırasında ne kadar süre bekleyeceğini kontrol edin.

Aşağıdaki kod parçacığı, greeting_timeout özelliğini kullanarak selamlama zaman aşımını nasıl kısıtlayacağınızı gösterir. ImapClient sınıf:

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)

IMAP İstemcisiyle TLS Kullan

Aspose.Email, güvenli iletişim için TLS ve SSL’i destekler. Kullanınız supported_encryption kabul edilebilir protokol sürümlerini tanımlamak için özellik.

NOT: yalnızca .NET framework tarafından desteklenen protokol sürümlerini ayarlayabilirsiniz. Eğer bazı protokol sürümleri mevcut .NET framework sürümünüz tarafından desteklenmiyorsa, yok sayılır ve atlanır. Bu, TLS güvenlik seviyesinin düşürülmesine yol açabilir. Bu durumda istisna oluşturulmaz. Uyumluluk kontrolleri olmadan protokolleri ayarlamak istiyorsanız lütfen ‘set_supported_encryption_unsafe(value)’ metodunu kullanın.

Aşağıdaki kod örneği, TLS 1.3’ü ayarlamayı gösterir ImapClient class instance.

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

Belirtilen şifreleme protokolü mevcut .NET Framework sürümünde desteklenmiyorsa, set_supported_encryption_unsafe(value) yöntemi ile supported_encryption özelliği arasındaki davranış farkı aşağıdaki gibidir:

  • supported_encryption özelliği kullanılırsa, e-posta istemcisi şifreleme protokolünü desteklenen bir seviyeye düşürür.
  • set_supported_encryption_unsafe(value) yöntemi kullanılırsa, e-posta istemcisi istisna fırlatır.

IMAP Sunucu Kimlik Bilgilerini Doğrula

Daha ileri işlemlere geçmeden önce IMAP sunucusuna güvenli bir bağlantı kurmak için kullanıcı kimlik bilgileri kontrol edilir ve doğrulanır. validate_credentials yöntemi ImapClient sınıfı, sağlanan kullanıcı adı ve şifrenin doğru olup olmadığını kontrol etmeye yardımcı olur. Kimlik bilgileri gerçekten geçerliyse, istemci IMAP sunucusuna başarılı bir şekilde kimlik doğrulaması yapabilir. Aşağıdaki kod örneği, bu yöntemin projenize nasıl uygulanacağını gösterir:

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 Aktivite Kaydını Etkinleştir

Aktivite kaydı, sunucu bağlantılarını, gönderilen ve alınan mesajların iletim detaylarını, e-posta işleme sırasında oluşan hata mesajlarını ve istemci veya sunucu tarafından yapılan diğer tüm eylemleri kaydetmeyi içerir. IMAP istemci aktivitesini ve sunucu ile etkileşimlerini izlemek için, aşağıdaki kod örneğini kullanın; bu örnek log_file_name özelliğini kullanır. ImapClient belirtilen günlük dosyasına bilgileri kaydetmek için sınıf:

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