Есть ли тайм-аут подключения 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]])