Підключення до IMAP‑серверів у Python
Aspose.Email для Python через .NET включає ImapClient клас, який дозволяє розробникам підключатися до поштових серверів за допомогою IMAP (Internet Message Access Protocol). Цей клас забезпечує безпечне та ефективне керування електронною поштою у Python‑додатках, включаючи отримання, читання, переміщення, видалення та оновлення повідомлень.
Використовуючи IMAP‑клієнт, ви можете автентифікувати користувачів, керувати папками скриньки, підключатися через SSL, встановлювати власні тайм‑ауті та отримувати доступ до електронних облікових записів через проксі‑сервери або автентифікацію CRAM‑MD5.
Базове підключення IMAP
Щоб підключитися до IMAP‑серверу за допомогою Aspose.Email, виконайте три прості кроки:
- Створіть екземпляр ImapClient клас.
- Вкажіть ім’я хоста, порт, ім’я користувача та пароль.
- Вкажіть бажану опцію безпеки.
Приклад коду нижче показує, як програмно підключитися до 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‑проксі
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")
Доступ лише для читання до поштової скриньки
Щоб запобігти змінам у вмісті поштової скриньки, увімкніть режим лише для читання. The 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