PyMailGUI is a multiwindow interface. It consists of the following:
A main mail-server list window opened initially, for online mail processing
One or more mail save-file list windows for offline mail processing
One or more mail-view windows for viewing and editing messages
PyEdit windows for displaying raw mail text, extracted text parts, and the system’s source code
Nonblocking busy state pop-up dialogs
Assorted pop-up dialogs for opened message parts, help, and more
Operationally, PyMailGUI runs as a set of parallel threads, which may overlap in time: one for each active server transfer, and one for each active offline save file load or deletion. PyMailGUI supports mail save files, automatic saves of sent messages, configurable fonts and colors, viewing and adding attachments, main message text extraction, plain text conversion for HTML, and much more.
To make this case study easier to understand, let’s begin by seeing what PyMailGUI actually does—its user interaction and email processing functionality—before jumping into the Python code that implements that behavior. As you read this part, feel free to jump ahead to the code listings that appear after the screenshots, but be sure to read this section, too; this, along with the prior discussion of version changes, is where some subtleties of PyMailGUI’s design are explained. After this section, you are invited to study the system’s Python source code listings on your own for a better and more complete explanation than ...