overlap broadlybut deletions and mail header fetches cannot in additionsome potentially long-running save-mail operations are threaded to avoid blocking the guiand this edition uses set object to prevent fetch threads for requests that include message whose fetch is in progress in order to avoid redundant work (see the changes review earlierfor more on why such things matter in generalbe sure to see the discussion of threads in guis in and pymailgui is really just concrete realization of concepts we've explored earlier load server interface let' return to loading our emailbecause the load operation is really socket operationpymailgui automatically connects to your email server using whatever connectivity exists on the machine on which it is run for instanceif you connect to the net over modem and you're not already connectedwindows automatically pops up the standard connection dialog on the broadband connections that most of us use todaythe interface to your email server is normally automatic after pymailgui finishes loading your emailit populates the main window' scrolled listbox with all of the messages on your email server and automatically scrolls to the most recently received message figure - shows what the main window looks like after selecting message with click and resizing--the text area in the middle grows and shrinks with the windowrevealing more header columns as it grows figure - pymailgui main window resized technicallythe load button fetches all your mail' header text the first time it is pressedbut it fetches only newly arrived email headers on later presses pymailgui keeps track of the last email loadedand requests only higher email numbers on later loads already loaded mail is kept in memoryin python listto avoid the cost of downloading it again pymailgui does not delete email from your server when it is the pymailgui client