Программа PyMailGUI является самой большой программой в этой книге, но в ней используется не так много новых библиотечных интерфейсов сверх тех, что уже были показаны. Например:
• Интерфейс PyMailGUI конструируется на основе расширения tkin- ter с использованием уже знакомых окон списков, кнопок и текстовых виджетов.
• Для извлечения заголовков сообщений, текста, вложений и для конструирования новых сообщений применяется пакет email.
• Для получения, отправки и удаления почтовых сообщений через сокеты используются библиотечные модули Python поддержки протоколов POP и SMTP.
• Если в вашем интерпретаторе Python имеется поддержка многопоточной модели выполнения, программа использует ее с целью избежать блокировки при длительных операциях с почтой.
Для просмотра и составления сообщений, а также для вывода необработанного текста вложений и исходного программного кода будет повторно использоваться объект TextEditor, который мы написали в главе 11. Для загрузки и удаления почты с сервера будут использоваться инструменты из пакета mailtools, написанного в главе 13. А для поддержки стратегии использования пользовательских параметров электронной почты, представленной в главе 13, будет применяться модуль mailconfig. Программа PyMailGUI в значительной мере представляет собой образец комбинирования уже имеющихся инструментов.
С другой стороны, ввиду большой длины программы мы не станем исчерпывающим образом документировать ее реализацию. Вместо этого мы начнем с описания работы PyMailGUI с точки зрения конечного пользователя. После этого мы перечислим новые модули системы без каких-либо комментариев, чтобы в дальнейшем заняться их изучением.
Как и для большинства длинных примеров этой книги, в данном разделе предполагается, что читатель достаточно хорошо знает Python, чтобы самостоятельно разобраться в программном коде. Если вы читали книгу последовательно, то должны также быть достаточно знакомы с tkinter, потоками выполнения и почтовыми интерфейсами, чтобы понять библиотечные инструменты, которые здесь применяются. Если возникнут сложности, может потребоваться освежить в памяти эти темы, излагаемые в более ранних главах.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011