Класс, представленный в примере 13.24, взаимодействует с почтовым сервером POP — выполняет операции загрузки, удаления и синхронизации. Этот класс заслуживает дополнительных пояснений.
Основы использования
Этот модуль имеет дело только с текстом почтовых сообщений — анализ писем после их получения делегируется другому модулю в пакете. Кроме того, этот модуль не кэширует уже загруженные данные — клиенты должны добавлять собственные инструменты сохранения почты, если это необходимо. Клиенты должны также обеспечивать ввод пароля или его передачу, если они не могут использовать подкласс, реализующий ввод пароля в консоли (например, графические или веб-интерфейсы).
В операциях загрузки и удаления используется модуль poplib из стандартной библиотеки, как мы уже видели выше в этой главе. Обратите внимание, что имеются также интерфейсы, извлекающие только заголовки сообщений, использующие операцию TOP протокола POP, если почтовый сервер поддерживает ее. Это дает существенную экономию времени, когда клиенту требуется получить только самые основные сведения об имеющейся почте. Кроме того, средства получения заголовков и полных почтовых сообщений способны также загружать сообщения более свежие, чем сообщение с определенным номером (удобно использовать при выполнении начальной загрузки), и ограничивать количество загружаемых сообщений, главным образом, наиболее свежих (удобно при большом количестве входящих сообщений и медленном соединении с Интернетом или малопроизводительном сервере).
Этот модуль поддерживает также понятие индикаторов хода выполнения операции — методам, выполняющим загрузку и удаление множества сообщений, вызывающая программа может передать функцию, которая будет вызываться по мере обработки каждого сообщения. Этой функции будут передаваться текущее и общее количество шагов. Это позволяет вызывающей программе показать ход выполнения операции в консоли, в графическом или в любом другом пользовательском интерфейсе.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011