Sort an mbox by category and pipe emails to a command.
mailinspect [-zjiI] -c category FILE [-gG regex]... [-s command] [-p style] [-o scoring] mailinspect -V
mailinspect reads the single mbox folder named FILE and sorts it in order of similarity to the category, which must have been created by dbacl(1). It can be used as a command line tool or interactively, when given the -I switch.
When used as a command line tool, mailinspect prints the sorted list of emails on STDOUT. Each line consists of a seek position for the given email within FILE, followed by the score and a description string in one of several styles chosen via the -p option.
When supplying a command string in conjunction with the -s option, mailinspect spawns a shell and executes command for every email in FILE (possibly selected via the -g or-G options), in the sorted order. This is similar to the formail(1) functionality, except the latter doesn't order the emails.
In interactive mode, all the command line functionality is available via keypresses. The sorted list of emails is displayed in a scrollable format, and can be viewed, searched, tagged, resorted and sent to shell commands. Predefined shell commands can be associated with function keys. See the usage section below.
The sorting heuristics are currently (and may always be) experimental, so there is no guarantee that the orderings are particularly well suited for anything.
mailinspect returns 1 on success, 0 if some error occurred.
Use category to compute the scores and sort the emails, which should be the file name of a dbacl(1) category.
Only emails matching the regular expression regex are sorted. All other emails are ignored. When several -g and -G options are present on the command line, earlier regular expressions are overridden by later ones where applicable.
Force internationalized mode.
Force regular expression searches to be case sensitive.
Determines the scoring formula to be used. The parameter scoring must be an integer greater than or equal to zero. By default, scoring equals zero.
Prints the email index in the given style. The parameter style must be an integer greater than or equal to zero. By default, style equals zero.
For each email in the list, execute the shell command, with the email body on STDIN. Emails are processed in sorted order.
Reverse sort order. Normally, emails are sorted in order of closest to furthest relative to category, but in this case, the opposite is true.
Interactive mode. Instead of printing the sorted list of emails on STDOUT, emails are displayed and can be scrolled, viewed, searched and piped interactively at the terminal.
Only emails not matching the regular expression regex are sorted. Opposite of -g switch.
Print the program version number and exit.
mailinspect needs to read a prelearned category before it can sort the emails in FILE. See dbacl(1).
Suppose you have two mail folders named good.mbox and bad.mbox respectively. You can create appropriate categories by typing the commands
% dbacl -l good good.mbox -T email
% dbacl -l bad bad.mbox -T email
Next, you can type the following command to view interactively the bad.mbox file with the emails whose score is closest to the category good listed first:
% mailinspect -I -c good bad.mbox
Alternatively, you might be interested only in the five emails in the folder bad.mbox whose score marks them as the furthest away from the category bad, completely independently from any other category such as good (ie you want outliers in the scoring sense).
% mailinspect -z -c bad bad.mbox | head -5
In interactive mode, the following keys are defined:
toggles another scoring formula.
toggles another display style.
sends the currently highlighted email to a shell command.
sends all currently tagged emails to a shell command, in sorted order. Every email executes the shell command independently.
tags the currently highlighted email.
tags all listed emails.
sends the currently highlighted email to $PAGER for viewing. If the environment variable PAGER is not defined, sends the email to less(1).
untags the highlighted email.
untags all listed emails.
reverses the sort order of displayed emails.
searches for a regular expression (see regex(7)) anywhere within the contents of all listed emails. Hides all emails which don't match.
like /, but hides all emails which match, keeping all those which don't match.
As a convenience, the function keys F1-F10 can each be associated with a shell command string. In this case, typing a function key has the same effect as the S key, but the command is already typed and ready to be edited/accepted. The function key associations are read from the configuration file .mailinspectrc if it exits.
mailinspect reads the file .mailinspectrc in the $HOME directory, if it exists. This is a plain text file which contains entries of the form
# this is a comment
F2 cat >> interesting.mbox
F5 mail [email protected]
When this variable is set, its value is prepended to every category filename which doesn't start with a '/'.
The source code for the latest version of this program is available at the following locations:
Laird A. Breyer <[email protected]>