poplib
— POP3 protocol client¶
Source code: Lib/poplib.py
Цей модуль визначає клас POP3
, який інкапсулює підключення до сервера POP3 і реалізує протокол, як визначено в RFC 1939. Клас POP3
підтримує як мінімальний, так і необов’язковий набори команд з RFC 1939. Клас POP3
також підтримує команду STLS
, представлену в RFC 2595, щоб увімкнути зашифрований зв’язок у вже встановленому з’єднанні.
Крім того, цей модуль надає клас POP3_SSL
, який забезпечує підтримку підключення до серверів POP3, які використовують SSL як базовий рівень протоколу.
Зауважте, що POP3, хоча й широко підтримується, застарів. Якість впровадження POP3-серверів дуже різна, і дуже багато з них досить погані. Якщо ваш поштовий сервер підтримує IMAP, краще використовувати клас imaplib.IMAP4
, оскільки сервери IMAP краще реалізовані.
Disponibilidade: not WASI.
Este módulo não funciona ou não está disponível em WebAssembly. Veja Plataformas WebAssembly para mais informações.
Модуль poplib
надає два класи:
- class poplib.POP3(host, port=POP3_PORT[, timeout])¶
Цей клас реалізує фактичний протокол POP3. Підключення створюється під час ініціалізації екземпляра. Якщо порт не вказано, використовується стандартний порт POP3 (110). Необов’язковий параметр timeout визначає час очікування в секундах для спроби підключення (якщо не вказано, буде використано глобальне налаштування часу очікування за замовчуванням).
Levanta um evento de auditoria
ftplib.connect
com os argumentosself
,host
,port
.Усі команди викличуть подію аудиту
poplib.putline
з аргументамиself
іline
, деline
— це байти, які мають бути надіслані на віддалений пристрій хост.Alterado na versão 3.9: Якщо параметр timeout дорівнює нулю, це викличе
ValueError
, щоб запобігти створенню неблокуючого сокета.
- class poplib.POP3_SSL(host, port=POP3_SSL_PORT, *, timeout=None, context=None)¶
Це підклас
POP3
, який підключається до сервера через сокет, зашифрований SSL. Якщо порт не вказано, 995, використовується стандартний порт POP3 через SSL. timeout працює як у конструкторіPOP3
. context — це необов’язковий об’єктssl.SSLContext
, який дозволяє об’єднувати параметри конфігурації SSL, сертифікати та приватні ключі в єдину (потенційно довговічну) структуру. Будь ласка, прочитайте Considerações de segurança, щоб дізнатися про найкращі практики.Levanta um evento de auditoria
ftplib.connect
com os argumentosself
,host
,port
.Усі команди викличуть подію аудиту
poplib.putline
з аргументамиself
іline
, деline
— це байти, які мають бути надіслані на віддалений пристрій хост.Alterado na versão 3.2: Parâmetro context adicionado.
Alterado na versão 3.4: The class now supports hostname check with
ssl.SSLContext.check_hostname
and Server Name Indication (seessl.HAS_SNI
).Alterado na versão 3.9: Якщо параметр timeout дорівнює нулю, це викличе
ValueError
, щоб запобігти створенню неблокуючого сокета.Alterado na versão 3.12: Os parâmetros depreciados keyfile e certfile foram removidos.
Один виняток визначено як атрибут модуля poplib
:
- exception poplib.error_proto¶
Виняток виникає при будь-яких помилках із цього модуля (помилки з модуля
socket
не переймаються). Причина винятку передається конструктору у вигляді рядка.
Ver também
- Módulo
imaplib
Стандартний модуль IMAP Python.
- Часті запитання про Fetchmail
Поширені запитання щодо POP/IMAP-клієнта fetchmail збирають інформацію про варіанти POP3-сервера та невідповідність RFC, що може бути корисним, якщо вам потрібно написати програму на основі протоколу POP.
Objetos POP3¶
All POP3 commands are represented by methods of the same name, in lowercase; most return the response text sent by the server.
A POP3
instance has the following methods:
- POP3.set_debuglevel(level)¶
Установіть рівень налагодження примірника. Це контролює кількість надрукованих виводів налагодження. Значення за замовчуванням,
0
, не створює вихідних даних для налагодження. Значення1
створює помірну кількість налагоджувальних виводів, як правило, один рядок на запит. Значення2
або вище створює максимальну кількість налагоджувальних виводів, реєструючи кожен рядок, надісланий і отриманий через контрольне з’єднання.
- POP3.getwelcome()¶
Повертає рядок привітання, надісланий сервером POP3.
- POP3.capa()¶
Запитуйте можливості сервера, як зазначено в RFC 2449. Повертає словник у формі
{'name': ['param'...]}
.Adicionado na versão 3.4.
- POP3.user(username)¶
Надіслати команду користувача, відповідь має вказувати, що потрібен пароль.
- POP3.pass_(password)¶
Send password, response includes message count and mailbox size. Note: the mailbox on the server is locked until
quit()
is called.
- POP3.apop(user, secret)¶
Використовуйте більш безпечну автентифікацію APOP для входу на сервер POP3.
- POP3.rpop(user)¶
Використовуйте аутентифікацію RPOP (подібно до r-команд UNIX), щоб увійти на сервер POP3.
- POP3.stat()¶
Отримати статус поштової скриньки. Результатом є кортеж із 2 цілих чисел:
(кількість повідомлень, розмір поштової скриньки)
.
- POP3.list([which])¶
Список повідомлень запиту, результат у формі
(відповідь, ['mesg_num octets', ...], octets)
. Якщо встановлено which, це повідомлення для списку.
- POP3.retr(which)¶
Отримайте повний номер повідомлення which і встановіть для нього позначку “переглянуто”. Результат має форму
(відповідь, ['рядок', ...], октети)
.
- POP3.dele(which)¶
Позначити номер повідомлення яке для видалення. На більшості серверів видалення фактично не виконується, доки не буде вимкнено (основним винятком є Eudora QPOP, яка навмисно порушує RFC, виконуючи очікувані видалення під час будь-якого відключення).
- POP3.rset()¶
Видаліть усі позначки видалення з поштової скриньки.
- POP3.noop()¶
Нічого не робити. Може використовуватися як засіб підтримки життя.
- POP3.quit()¶
Підпис: внести зміни, розблокувати поштову скриньку, розірвати з’єднання.
- POP3.top(which, howmuch)¶
Отримує заголовок повідомлення плюс скільки рядків повідомлення після заголовка номера повідомлення which. Результат має форму
(відповідь, ['рядок', ...], октети)
.Команда POP3 TOP, яку використовує цей метод, на відміну від команди RETR, не встановлює прапор перегляду повідомлення; на жаль, TOP погано вказано в RFC і часто порушується на сторонніх серверах. Перевірте цей метод вручну на серверах POP3, які ви використовуватимете, перш ніж довіряти йому.
- POP3.uidl(which=None)¶
Список дайджестів зворотного повідомлення (унікальний ідентифікатор). Якщо вказано which, результат містить унікальний ідентифікатор для цього повідомлення у формі
'response mesgnum uid
, інакше результатом є список(response, ['mesgnum uid', ...], octets)
.
- POP3.utf8()¶
Спробуйте перейти в режим UTF-8. Повертає відповідь сервера в разі успіху, викликає
error_proto
, якщо ні. Вказано в RFC 6856.Adicionado na versão 3.5.
- POP3.stls(context=None)¶
Розпочніть сеанс TLS на активному з’єднанні, як зазначено в RFC 2595. Це дозволено лише перед автентифікацією користувача
Параметр context — це об’єкт
ssl.SSLContext
, який дозволяє об’єднувати параметри конфігурації SSL, сертифікати та приватні ключі в єдину (потенційно довговічну) структуру. Будь ласка, прочитайте Considerações de segurança, щоб дізнатися про найкращі практики.This method supports hostname checking via
ssl.SSLContext.check_hostname
and Server Name Indication (seessl.HAS_SNI
).Adicionado na versão 3.4.
Екземпляри POP3_SSL
не мають додаткових методів. Інтерфейс цього підкласу ідентичний його батьківському.
Exemplo POP3¶
Ось мінімальний приклад (без перевірки помилок), який відкриває поштову скриньку, отримує та друкує всі повідомлення:
import getpass, poplib
M = poplib.POP3('localhost')
M.user(getpass.getuser())
M.pass_(getpass.getpass())
numMessages = len(M.list()[1])
for i in range(numMessages):
for j in M.retr(i+1)[1]:
print(j)
Наприкінці модуля є тестовий розділ, який містить докладніший приклад використання.