Besides the basic sorting (details) functionality, the present program is capable of providing means for the user to control the sorting in a much finer manner. Consider the following scenario, say A. Brown (the sorter) would like to order his e-mail messages according to the name of sender in an ascending order. Because the same person (e.g. C. Davis) can send e-mails from different e-mail addresses of his/her, the sorter want to arrange to have all e-mail messages from the same person ordered according to his/her sending e-mail addresses, in ascending order again. After doing that, the sorter find further ordering is necessary, e.g. order those e-mail messages with the same sender and the same sending e-mail address according to the time they were received, or the sorter's receiving mailbox, in certain order, etc.. These tasks can be accomplished easily, there is in principle no limitation on the fineness of the ordering until every single messages are ordered according to the sorter's will.
Sorting starts with selecting the leading sort property (see Fig: 13). It is selected inside the dropdown window next to "Sort By" of the e-mail browser (see the figure below) it's order is determined by the check box on it's right. There is a arrow button on the right of each property inside the dropdown window. Pressing this arrow button opens the ordering selection tree dialog. The first generation of this tree represents the available properties to select after the leading sort property. The next generation represents further detailing property selection options for the sorting against the previous generation, and so on and so forth. It is not enough just expanding the tree, one must select a tree node. When a user selects certain tree node at certain generation of the tree, it sets a refining sorting sequence determined by the path from the leading sorting property to the selected property. For example one can sort according to "Received At" then "To" then "Known As" then "From" properties (ignore the ordering problem for the time been), as shown in the following figure. The ordering of each property is determined by the value inside the drowdown box next to it on the right (the default is ascending).
There are more convenient ways to sort for some frequently used e-mail properties using the e-mail browser (see Fig: 14). Some column header can be used to display the current sorting state and to sort the corresponding e-mail property. The name of the currently sorted property is displayed in bold font; There is a red dot to the left of the name; To its right, there is an arrow indicating the direction of sorting. When clicking a column header that is not currently sorted, the corresponding property becomes the currently sorted; further clicking (on the sorted header) changes the direction of the sorting. Detailed sorting sequence dialog can be opened by pressing the right most arrow button. For example, as shown in the following figure, the user selected "Received At" as his/her leading sort property and "Known As" and "Subject" as ever detailing sort properties.