Есть ли тайм-аут подключения pop3?

Я использую Python Poplib.

Истекает ли время ожидания соединения POP3 после периода бездействия? Есть ли способ установить этот тайм-аут? Приведет ли такой таймаут к тому, что письма, помеченные для удаления, будут удалены, как если бы вызывалась quit()?

Единственный упомянутый тайм-аут относится к тайм-ауту попытки подключения

class poplib.POP3(host[, port[, timeout]])

Мой вызов POP3.quit() генерирует исключение poplib.error_proto с сообщением "timed out", и мне интересно, будет ли когда-либо время ожидания соединения само по себе.

3 ответа

Решение

Истекает ли время ожидания соединения POP3 после периода бездействия?

Это в основном зависит от серверного программного обеспечения на другом конце. Некоторые библиотеки сокетов могут позволить вам указать локальное время ожидания. Время соединения истекает в любое время, самое короткое между локальным и удаленным таймаутом.

Есть ли способ установить этот тайм-аут?

Если вы не управляете настройками программного обеспечения сервера (например, запускаете свой собственный сервер), вы не можете изменить время ожидания.

Приведет ли такой таймаут к тому, что письма, помеченные для удаления, будут удалены, как если бы вызывалась quit()?

Поведение по таймауту обычно совпадает с ручным закрытием сокета (с выключением или без него). Если вы не отправите команду quit, сообщения не будут удалены с сервера.

POP3 является своего рода транзакционным. Поэтому, если вы загрузите и удалите сообщение с сервера, оно не будет действовать, пока вы не завершите корректное соединение. Метод POP3.quit() содержит подробное описание. Волшебное слово - коммит.

Тайм-аут соединения обычно является настройкой сервера и, конечно, когда сервер прерывает соединение, это считается откатом.

Да, сокет POP3 в конечном итоге истечет. Смотря здесь, вы передаете тайм-аут в конструкторе.

http://docs.python.org/library/poplib.html

class poplib.POP3(host[, port[, timeout]])
Другие вопросы по тегам