Свързване към IMAP сървъри в Python

Aspose.Email за Python чрез .NET включва ImapClient клас, който позволява на разработчиците да се свързват с пощенски сървъри, използвайки IMAP (Internet Message Access Protocol). Този клас осигурява сигурно и ефективно управление на имейли в Python приложения, включително извличане, четене, преместване, изтриване и актуализиране на имейл съобщения.

С помощта на IMAP клиента можете да автентикирате потребители, да управлявате папки в пощенската кутия, да се свързвате чрез SSL, да задавате персонализирани таймаутове и да достъпвате имейл акаунти чрез прокси сървъри или автентикация CRAM-MD5.

Основна IMAP връзка

За да се свържете с IMAP сървър, използвайки Aspose.Email, следвайте тези три прости стъпки:

  1. Създайте инстанция на ImapClient клас.
  2. Посочете име на хост, порт, потребителско име и парола.
  3. Посочете желаната опция за сигурност.

Следният пример с код показва как да се свържете програмено към IMAP сървър:

import aspose.email as ae

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

Активиране на SSL за IMAP връзки

За да се свържете към IMAP сървър с включен SSL, задайте security_options свойство към 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

Свързване чрез SOCKS прокси

Aspose.Email поддържа SOCKS версии 4, 4a и 5 за връзки чрез прокси. Използвайте следните стъпки, за да се свържете през SOCKS прокси:

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

Aspose.Email също позволява IMAP връзки през HTTP прокси:

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

Достъп в режим само за четене до пощенска кутия

За да предотвратите промени в съдържанието на пощенската кутия, активирайте режим само за четене. read_only свойство, зададено на True, указва, че промените не са разрешени. Следният пример с код показва как да използвате това свойство в проект:

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 автентикация

За повишена сигурност, конфигурирайте клиента да използва автентикация CRAM-MD5:

Следният пример с код демонстрира как да конфигурирате клиента да приема CRAM-MD5 като един от поддържаните методи за автентикация при свързване към IMAP сървър:

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

Задаване на време за изчакване на операцията

Предотвратете безкрайното изчакване на клиента, като зададете време за изчакване (в милисекунди):

Следният фрагмент от код показва как да зададете период на изчакване от 60 000 милисекунди (60 секунди) за клиента да изчака отговора от сървъра:

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

Задаване на време за приветствие

Контролирайте колко дълго клиентът изчаква по време на началното ръкостискане със сървъра за поща.

Следният фрагмент от код показва как да ограничите времето за приветствие, използвайки свойството greeting_timeout на ImapClient клас:

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 с IMAP клиента

Aspose.Email поддържа TLS и SSL за сигурна комуникация. Използвайте supported_encryption свойство за определяне на приемливи версии на протокола.

ЗНАМЕНИЕ: можете да зададете само тези версии на протокола, които се поддържат от .NET Framework. Ако някои версии на протокола не се поддържат от вашата текуща версия на .NET Framework, те ще бъдат игнорирани и пропуснати. Това може да доведе до понижаване на нивото на сигурност на TLS. В този случай няма да се генерират изключения. Моля, използвайте метода ‘set_supported_encryption_unsafe(value)’, ако желаете да зададете протоколите без каквито и да е проверки за съвместимост.

Примерът с код отдолу показва как да зададете TLS 1.3 за ImapClient инстанция на класа.

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

В случай, че даден криптографски протокол не се поддържа в текущата версия на .NET Framework, разликата в поведението между методът set_supported_encryption_unsafe(value) и свойството supported_encryption е следната:

  • Ако се използва свойството supported_encryption, имейл клиентът понижава протокола за криптиране до поддържано ниво.
  • Ако се използва методът set_supported_encryption_unsafe(value), имейл клиентът хвърля изключения.

Валидиране на данни за достъп до IMAP сървър

За да се установи сигурна връзка към IMAP сървър преди извършване на по-нататъшни действия, потребителските данни се проверяват и валидират. Методът validate_credentials на ImapClient клас помага да се провери дали предоставеното потребителско име и парола са правилни. Ако данните за достъп са валидни, клиентът може успешно да се автентицира с IMAP сървъра. Следният пример с код показва как да внедрите този метод във вашия проект:

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 активност

Регистрирането на активност включва записване на връзките към сървъра, детайли за предаване на изпратени и получени съобщения, съобщения за грешки по време на обработка на имейли и всякакви други действия, извършени от клиента или сървъра. За проследяване на активността на IMAP клиента и взаимодействията със сървъра, използвайте следния пример с код, който използва свойството log_file_name на ImapClient клас за записване на информацията във зададения лог файл:

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