mairix.1 (mairix-0.23) | : | mairix.1 (mairix-0.24) | ||
---|---|---|---|---|
skipping to change at line 38 | skipping to change at line 38 | |||
It can operate with the following folder types | It can operate with the following folder types | |||
* maildir | * maildir | |||
* MH (compatible with the MH folder formats used by xmh, sylphee d, claws-mail, nnml (Gnus) and | * MH (compatible with the MH folder formats used by xmh, sylphee d, claws-mail, nnml (Gnus) and | |||
evolution) | evolution) | |||
* mbox (including mboxes that have been compressed with gzip or bzip 2) | * mbox (including mboxes that have been compressed with gzip or bzip 2) | |||
* IMAP: remote folders on an IMAP server | ||||
If maildir or MH source folders are used, and a search outputs its matche s to an mfolder in maildir or | If maildir or MH source folders are used, and a search outputs its matche s to an mfolder in maildir or | |||
MH format, symbolic links are used to reference the original messages in side the mfolder. However, if | MH format, symbolic links are used to reference the original messages in side the mfolder. However, if | |||
mbox folders are involved, copies of messages are made instead. | mbox folders are involved, copies of messages are made instead. If IMAP | |||
folders are used for both | ||||
source results, IMAP server-side copies of messages are made. With IMA | ||||
P source folders and any other | ||||
type of results folder, messages are downloaded from the IMAP server to | ||||
be written to the results | ||||
folder. With an IMAP results folder and any other type of source folders | ||||
, messages are uploaded to the | ||||
IMAP server to be appended to the results folder. | ||||
OPTIONS | OPTIONS | |||
mairix decides whether indexing or searching is required by looking for t he presence of any search-pat- | mairix decides whether indexing or searching is required by looking for t he presence of any search-pat- | |||
terns on the command line. | terns on the command line. | |||
Special modes | Special modes | |||
-h, --help | -h, --help | |||
Show usage summary and exit | Show usage summary and exit | |||
-V, --version | -V, --version | |||
skipping to change at line 115 | skipping to change at line 121 | |||
-t, --threads | -t, --threads | |||
As well as returning the matched messages, also return every messa ge in the same thread as one | As well as returning the matched messages, also return every messa ge in the same thread as one | |||
of the real matches. | of the real matches. | |||
-r, --raw-output | -r, --raw-output | |||
Instead of creating an mfolder containing the matched messages, ju st show their paths on stdout. | Instead of creating an mfolder containing the matched messages, ju st show their paths on stdout. | |||
-x, --excerpt-output | -x, --excerpt-output | |||
Instead of creating an mfolder containing the matched messages, display an excerpt from their | Instead of creating an mfolder containing the matched messages, display an excerpt from their | |||
headers on stdout. The excerpt shows To, Cc, From, Subject and Da | headers on stdout. The excerpt shows To, Cc, From, Subject and Da | |||
te. | te. With IMAP source folders, | |||
this requires downloading each matched message from the IMAP serve | ||||
r. | ||||
-H, --force-hardlinks | -H, --force-hardlinks | |||
Instead of creating symbolic links, force the use of hardlinks. This helps mailers such as | Instead of creating symbolic links, force the use of hardlink s. This helps mailers such as | |||
alpine to realize that there are new mails in the search folder. | alpine to realize that there are new mails in the search folder. | |||
-o mfolder | -o mfolder | |||
--mfolder mfolder | --mfolder mfolder | |||
Specify a temporary alternative path for the mfolder to use, overr iding the mfolder directive in | Specify a temporary alternative path for the mfolder to use, overr iding the mfolder directive in | |||
the rc file. | the rc file. | |||
mairix will refuse to output search results into any folder that a ppears to be amongst those | mairix will refuse to output search results into any folder th at appears to be amongst those | |||
that are indexed. This is to prevent accidental deletion of email s. | that are indexed. This is to prevent accidental deletion of email s. | |||
Search patterns | Search patterns | |||
t:word | t:word | |||
Match word in the To: header. | Match word in the To: header. | |||
c:word | c:word | |||
Match word in the Cc: header. | Match word in the Cc: header. | |||
f:word | f:word | |||
skipping to change at line 148 | skipping to change at line 155 | |||
s:word | s:word | |||
Match word in the Subject: header. | Match word in the Subject: header. | |||
m:word | m:word | |||
Match word in the Message-ID: header. | Match word in the Message-ID: header. | |||
b:word | b:word | |||
Match word in the message body. | Match word in the message body. | |||
Message body is taken to mean any body part of type text/plain | Message body is taken to mean any body part of type text/plain or | |||
or text/html. For text/html, | text/html. For text/html, | |||
text within meta tags is ignored. In particular, the URLs inside | text within meta tags is ignored. In particular, the URLs insi | |||
<A HREF="..."> tags are not | de <A HREF="..."> tags are not | |||
currently indexed. Non-text attachments are ignored. If ther | currently indexed. Non-text attachments are ignored. If there's | |||
e's an attachment of type mes- | an attachment of type mes- | |||
sage/rfc822, this is parsed and the match is performed on this | sage/rfc822, this is parsed and the match is performed on t | |||
sub-message too. If a hit | his sub-message too. If a hit | |||
occurs, the enclosing message is treated as having a hit. | occurs, the enclosing message is treated as having a hit. | |||
d:[start-datespec]-[end-datespec] | d:[start-datespec]-[end-datespec] | |||
Match messages with Date: headers lying in the specific range. | Match messages with Date: headers lying in the specific range. | |||
z:[low-size]-[high-size] | z:[low-size]-[high-size] | |||
Match messages whose size lies in the specified range. If the l ow-size argument is omitted it | Match messages whose size lies in the specified range. If the low -size argument is omitted it | |||
defaults to zero. If the high-size argument is omitted it default s to infinite size. | defaults to zero. If the high-size argument is omitted it default s to infinite size. | |||
For example, to match messages between 10kilobytes and 20kilobytes in size, the following search | For example, to match messages between 10kilobytes and 20kilobytes in size, the following search | |||
term can be used: | term can be used: | |||
mairix z:10k-20k | mairix z:10k-20k | |||
The suffix 'k' on a number means multiply by 1024, and the suffix 'M' on a number means multiply | The suffix 'k' on a number means multiply by 1024, and the suffix 'M' on a number means multiply | |||
by 1024*1024. | by 1024*1024. | |||
n:word | n:word | |||
Match word occurring as the name of an attachment in the message. Since attachment names are | Match word occurring as the name of an attachment in the messag e. Since attachment names are | |||
usually long, this option would usually be used in the substring f orm. So | usually long, this option would usually be used in the substring f orm. So | |||
mairix n:mairix= | mairix n:mairix= | |||
would match all messages which have attachments whose names contai n the substring mairix. | would match all messages which have attachments whose names contai n the substring mairix. | |||
The attachment name is determined from the name=xxx or filename= xxx qualifiers on the Content- | The attachment name is determined from the name=xxx or filename=xx x qualifiers on the Content- | |||
Type: and Content-Disposition: headers respectively. | Type: and Content-Disposition: headers respectively. | |||
F:flags | F:flags | |||
Match messages with particular flag settings. The available flags are 's' meaning seen, 'r' | Match messages with particular flag settings. The available f lags are 's' meaning seen, 'r' | |||
meaning replied, and 'f' meaning flagged. The flags are case-inse nsitive. A flag letter may be | meaning replied, and 'f' meaning flagged. The flags are case-inse nsitive. A flag letter may be | |||
prefixed by a '-' to negate its sense. Thus | prefixed by a '-' to negate its sense. Thus | |||
mairix F:-s d:1w- | mairix F:-s d:1w- | |||
would match any unread message less than a week old, and | would match any unread message less than a week old, and | |||
mairix F:f-r d:-1m | mairix F:f-r d:-1m | |||
would match any flagged message older than a month which you haven 't replied to yet. | would match any flagged message older than a month which you haven 't replied to yet. | |||
Note that the flag characters and their meanings agree with those used as the suffix letters on | Note that the flag characters and their meanings agree with those used as the suffix letters on | |||
message filenames in maildir folders. | message filenames in maildir folders. | |||
Searching for a match amongst more than one part of a message | Searching for a match amongst more than one part of a message | |||
Multiple body parts may be grouped together, if a match in any of them is sought. Common examples fol- | Multiple body parts may be grouped together, if a match in any of them is sought. Common examples fol- | |||
low. | low. | |||
tc:word | tc:word | |||
Match word in either the To: or Cc: headers (or both). | Match word in either the To: or Cc: headers (or both). | |||
bs:word | bs:word | |||
Match word in either the Subject: header or the message body (or b oth). | Match word in either the Subject: header or the message body (or b oth). | |||
The a: search pattern is an abbreviation for tcf:; i.e. match the word in the To:, Cc: or From: head- | The a: search pattern is an abbreviation for tcf:; i.e. match the word in the To:, Cc: or From: head- | |||
ers. ("a" stands for "address" in this case.) | ers. ("a" stands for "address" in this case.) | |||
Match words | Match words | |||
The word argument to the search strings can take various forms. | The word argument to the search strings can take various forms. | |||
~word | ~word | |||
Match messages not containing the word. | Match messages not containing the word. | |||
word1,word2 | word1,word2 | |||
This matches if both the words are matched in the specified messag e part. | This matches if both the words are matched in the specified messag e part. | |||
skipping to change at line 235 | skipping to change at line 242 | |||
Match any word containing substring, allowing up to N errors in th e match. For example, if N is | Match any word containing substring, allowing up to N errors in th e match. For example, if N is | |||
1, a single error is allowed, where an error can be | 1, a single error is allowed, where an error can be | |||
* a missing letter | * a missing letter | |||
* an extra letter | * an extra letter | |||
* a different letter. | * a different letter. | |||
^substring= | ^substring= | |||
Match any word containing substring as a substring, with the requi rement that substring occurs | Match any word containing substring as a substring, with the req uirement that substring occurs | |||
at the beginning of the matched word. | at the beginning of the matched word. | |||
Precedence matters | Precedence matters | |||
The binding order of the constructions is: | The binding order of the constructions is: | |||
1. Individual command line arguments define separate conditions which are AND-ed together | 1. Individual command line arguments define separate conditions which are AND-ed together | |||
2. Within a single argument, the letters before the colon define whic h message parts the expression | 2. Within a single argument, the letters before the colon define whic h message parts the expression | |||
applies to. If there is no colon, the expression applies to all t he headers listed earlier and | applies to. If there is no colon, the expression applies to all the headers listed earlier and | |||
the body. | the body. | |||
3. After the colon, commas delineate separate disjuncts, which are OR -ed together. | 3. After the colon, slashes delineate separate disjuncts, which are O R-ed together. | |||
4. Each disjunct may contain separate conjuncts, which are separate | 4. Each disjunct may contain separate conjuncts, which are separated | |||
d by plus signs. These condi- | by commas. These conditions | |||
tions are AND-ed together. | are AND-ed together. | |||
5. Each conjunct may start with a tilde to negate it, and may be foll | 5. Each conjunct may start with a tilde to negate it, and may be fol | |||
owed by a slash to indicate a | lowed by a slash to indicate a | |||
substring match, optionally followed by an integer to defin | substring match, optionally followed by an integer to define th | |||
e the maximum number of errors | e maximum number of errors | |||
allowed. | allowed. | |||
Date specification | Date specification | |||
This section describes the syntax used for specifying dates when searchin g using the `d:' option. | This section describes the syntax used for specifying dates when searchin g using the `d:' option. | |||
Dates are specified as a range. The start and end of the range can both | Dates are specified as a range. The start and end of the range can both | |||
be specified. Alternatively, | be specified. Alternatively, | |||
if the start is omitted, it is treated as being the beginning of time. | if the start is omitted, it is treated as being the beginning of time. I | |||
If the end is omitted, it is | f the end is omitted, it is | |||
treated as the current time. | treated as the current time. | |||
There are 4 basic formats: | There are 4 basic formats: | |||
d:start-end | d:start-end | |||
Specify both start and end explicitly | Specify both start and end explicitly | |||
d:start- | d:start- | |||
Specify start, end is the current time | Specify start, end is the current time | |||
skipping to change at line 290 | skipping to change at line 297 | |||
│letter │ short for │ example │ meaning │ | │letter │ short for │ example │ meaning │ | |||
├────────┼─────────────┼───────────┼───────────────────────┤ | ├────────┼─────────────┼───────────┼───────────────────────┤ | |||
│d │ days │ 3d │ 3 days │ | │d │ days │ 3d │ 3 days │ | |||
│w │ weeks │ 2w │ 2 weeks (14 days) │ | │w │ weeks │ 2w │ 2 weeks (14 days) │ | |||
│m │ months │ 5m │ 5 months (150 days) │ | │m │ months │ 5m │ 5 months (150 days) │ | |||
│y │ years │ 4y │ 4 years (4*365 days) │ | │y │ years │ 4y │ 4 years (4*365 days) │ | |||
└────────┴─────────────┴───────────┴───────────────────────┘ | └────────┴─────────────┴───────────┴───────────────────────┘ | |||
Months are always treated as 30 days, and years as 365 days, for this pur pose. | Months are always treated as 30 days, and years as 365 days, for this pur pose. | |||
Absolute times can be specified in many forms. Some forms have differe | Absolute times can be specified in many forms. Some forms have different | |||
nt meanings when they define a | meanings when they define a | |||
start date from that when they define an end date. Where a single expres | start date from that when they define an end date. Where a single expre | |||
sion specifies both the start | ssion specifies both the start | |||
and end (i.e. where the argument to d: doesn't contain a `-'), it will us ually have different interpre- | and end (i.e. where the argument to d: doesn't contain a `-'), it will us ually have different interpre- | |||
tations in the two cases. | tations in the two cases. | |||
In the examples below, suppose the current date is Sunday May 18th, 2003 (when I started to write this | In the examples below, suppose the current date is Sunday May 18th, 2003 (when I started to write this | |||
material.) | material.) | |||
┌─────────────────────┬──────────────────────┬───────────────────────┬─── ──────────────────────────────┐ | ┌─────────────────────┬──────────────────────┬───────────────────────┬─── ──────────────────────────────┐ | |||
│Example │ Start date │ End date │ N otes │ | │Example │ Start date │ End date │ N otes │ | |||
├─────────────────────┼──────────────────────┼───────────────────────┼─── ──────────────────────────────┤ | ├─────────────────────┼──────────────────────┼───────────────────────┼─── ──────────────────────────────┤ | |||
│d:20030301-20030425 │ March 1st, 2003 │ 25th April, 2003 │ │ | │d:20030301-20030425 │ March 1st, 2003 │ 25th April, 2003 │ │ | |||
│d:030301-030425 │ March 1st, 2003 │ April 25th, 2003 │ c entury assumed │ | │d:030301-030425 │ March 1st, 2003 │ April 25th, 2003 │ c entury assumed │ | |||
│d:mar1-apr25 │ March 1st, 2003 │ April 25th, 2003 │ │ | │d:mar1-apr25 │ March 1st, 2003 │ April 25th, 2003 │ │ | |||
│d:Mar1-Apr25 │ March 1st, 2003 │ April 25th, 2003 │ c ase insensitive │ | │d:Mar1-Apr25 │ March 1st, 2003 │ April 25th, 2003 │ c ase insensitive │ | |||
│d:MAR1-APR25 │ March 1st, 2003 │ April 25th, 2003 │ c ase insensitive │ | │d:MAR1-APR25 │ March 1st, 2003 │ April 25th, 2003 │ c ase insensitive │ | |||
skipping to change at line 329 | skipping to change at line 336 | |||
│d:99oct-1oct │ October 1st, 1999 │ October 1st, 2002 │ en d before now, single digit is │ | │d:99oct-1oct │ October 1st, 1999 │ October 1st, 2002 │ en d before now, single digit is │ | |||
│ │ │ │ a day of the month │ | │ │ │ │ a day of the month │ | |||
│d:99oct-01oct │ October 1st, 1999 │ October 31st, 2001 │ 2 digits starting with zero │ | │d:99oct-01oct │ October 1st, 1999 │ October 31st, 2001 │ 2 digits starting with zero │ | |||
│ │ │ │ tr eated as a year │ | │ │ │ │ tr eated as a year │ | |||
│d:oct99-oct1 │ October 1st, 1999 │ October 1st, 2002 │ da y and month in either order │ | │d:oct99-oct1 │ October 1st, 1999 │ October 1st, 2002 │ da y and month in either order │ | |||
│d:oct99-oct01 │ October 1st, 1999 │ October 31st, 2001 │ ye ar and month in either order │ | │d:oct99-oct01 │ October 1st, 1999 │ October 31st, 2001 │ ye ar and month in either order │ | |||
└─────────────────────┴──────────────────────┴───────────────────────┴─── ──────────────────────────────┘ | └─────────────────────┴──────────────────────┴───────────────────────┴─── ──────────────────────────────┘ | |||
The principles in the table work as follows. | The principles in the table work as follows. | |||
· When the expression defines a period of more than a day (i.e. if a | · When the expression defines a period of more than a day (i.e. if | |||
month or year is specified), | a month or year is specified), | |||
the earliest day in the period is taken when the start date is de | the earliest day in the period is taken when the start date is def | |||
fined, and the last day in the | ined, and the last day in the | |||
period if the end of the range is being defined. | period if the end of the range is being defined. | |||
· The end date is always taken to be on or before the current date. | · The end date is always taken to be on or before the current date. | |||
· The start date is always taken to be on or before the end date. | · The start date is always taken to be on or before the end date. | |||
SETTING UP THE MATCH FOLDER | SETTING UP THE MATCH FOLDER | |||
If the match folder does not exist when running in search mode, it is | If the match folder does not exist when running in search mode, it | |||
automatically created. For | is automatically created. For | |||
'mformat=maildir' (the default), this should be all you need to do. If | 'mformat=maildir' (the default), this should be all you need to do. If y | |||
you use 'mformat=mh', you may | ou use 'mformat=mh', you may | |||
have to run some commands before your mailer will recognize the folder. e.g. for mutt, you could do | have to run some commands before your mailer will recognize the folder. e.g. for mutt, you could do | |||
mkdir -p /home/richard/Mail/mfolder | mkdir -p /home/richard/Mail/mfolder | |||
touch /home/richard/Mail/mfolder/.mh_sequences | touch /home/richard/Mail/mfolder/.mh_sequences | |||
which seems to work. Alternatively, within mutt, you could set MBOX_TYPE | which seems to work. Alternatively, within mutt, you could set MBOX_TYPE | |||
to in advance. | to 'mh' and save a message to | |||
'+mfolder' to have mutt set up the structure for you in advance. | ||||
If you use Sylpheed, the best way seems to be to create the new folder fr om within Sylpheed before let- | If you use Sylpheed, the best way seems to be to create the new folder fr om within Sylpheed before let- | |||
ting mairix write into it. | ting mairix write into it. | |||
EXAMPLES | EXAMPLES | |||
Suppose my email address is <richard@doesnt.exist>. | Suppose my email address is <richard@doesnt.exist>. | |||
Either of the following will match all messages newer than 3 months fro m me with the word 'chrony' in | Either of the following will match all messages newer than 3 months fro m me with the word 'chrony' in | |||
the subject line: | the subject line: | |||
End of changes. 23 change blocks. | ||||
48 lines changed or deleted | 61 lines changed or added |