Added the -n option to set the maximum number of mails to extract.
[mymail.git] / mymail.1
1 .TH "MYMAIL" "0.9.9" "June 2013" "Francois Fleuret" "User Commands"
2
3 \" This man page was written by Francois Fleuret <francois@fleuret.org>
4 \" and is distributed under a Creative Commons Attribution-Share Alike
5 \" 3.0 License.
6
7 .SH "NAME"
8
9 mymail \- A simple command line utility for indexing and searching mbox files
10
11 .SH "SYNOPSIS"
12
13 \fBmymail\fP [\fIoptions\fR] [\fI<mbox dir1>\fR [\fI<mbox dir2>\fR ... ]|\fI<db file1>\fR [\fI<db file2>\fR ... ]]
14
15 .SH "DESCRIPTION"
16
17 \fBmymail\fP is a command line utility to index mbox files, search for
18 mails based on sender, subject, etc. and generate result mbox files.
19
20 It is similar in spirit to other tools such as mu or notmuch, but is
21 overall simpler.
22
23 .SH "OPTIONS"
24 .TP
25 \fB-h\fR, \fB--help\fR
26 display help and exit
27 .TP
28 \fB-v\fR, \fB--version\fR
29 print the version number
30 .TP
31 \fB-q\fR, \fB--quiet\fR
32 do not write information during the search
33 .TP
34 \fB-t\fR, \fB--use-leading-time\fR
35 use the time stamp from the leading line of each mail and not the
36 Date: field
37 .TP
38 \fB-p <db filename pattern>\fR, \fB--db-pattern <db filename pattern>\fR
39 set the db filename pattern for recursive search
40 .TP
41 \fB-r <db root path>\fR, \fB--db-root <db root path>\fR
42 set the db root path for recursive search
43 .TP
44 \fB-l <db filename list>\fR, \fB--db-list <db filename list>\fR
45 set the semicolon-separated list of db files for search
46 .TP
47 \fB-m <mbox filename pattern>\fR, \fB--mbox-pattern <mbox filename pattern>\fR
48 set the mbox filename pattern for recursive search
49 .TP
50 \fB-s <search pattern>\fR, \fB--search <search pattern>\fR search for
51 matching mails in the db file. Multiple search requests can be
52 combined, and only mails fulfilling all of them will be extracted.
53 .TP
54 \fB-d <db filename>\fR, \fB--db-file-output <db filename>\fR
55 set the db filename for indexing
56 .TP
57 \fB-i\fR, \fB--index\fR
58 index mails in the mailboxes located recursively anywhere in the
59 directories following the options on the command lines
60 .TP
61 \fB-o <output filename>\fR, \fB--output <output filename>\fR set the
62 result mbox filename. If it is not set, the standard output is used
63 .TP
64 \fB-n <max number of mails>\fR, \fB--nb-mails-max <max number of mails>\fR set the
65 maximum number of mails to extract (default is 250)
66 .TP
67 \fB-a <search key>\fR, \fB--default-search <search key>\fR
68 set the default search key. If a search request is not understood,
69 it is interpreted as the regexp with this default search key
70
71 .SH "ENVIRONMENT VARIABLES"
72
73 .TP
74 \fBMYMAIL_DB_PATTERN\fR
75 defaut value for the --db-pattern argument
76 .TP
77 \fBMYMAIL_DB_ROOT\fR
78 defaut value for the --db-root argument
79 .TP
80 \fBMYMAIL_DB_LIST\fR
81 defaut value for the --db-list argument
82 .TP
83 \fBMYMAIL_DB_FILE\fR
84 defaut value for the --db-file-output argument
85 .TP
86 \fBMYMAILRC \fR
87 configuration file, default is ${HOME}/.mymailrc
88
89 .SH "SEARCH CONDITIONS"
90
91 A search condition is either a time-related condition
92 ('today', 'yesterday', etc.), or a single-character key, followed by a
93 space and a regexp, which can itself contain spaces.
94
95 If it is prefaced by the character "!", a condition is negated and has
96 to be false for a mail to be selected.
97
98 .TP
99 \fBf <regexp>\fR (from)
100 selects mails whose leading line 'From', or fields From:, Sender:,
101 Reply-To:, or Return-Path: matches the regexp.
102 .TP
103 \fBt <regexp>\fR (to)
104 selects mails whose field To:, Cc:, or Bcc: matches the regexp.
105 .TP
106 \fBp <regexp>\fR (participant)
107 selects mails that would be selected by \fBf\fR or \fBt\fR.
108 .TP
109 \fBs <regexp>\fR (subject)
110 selects mails whose field Subject: matches the regexp.
111 .TP
112 \fBd <regexp>\fR (date)
113 selects mails whose field Date: matches the regexp.
114 .TP
115 \fBb <regexp>\fR (body)
116
117 selects mails whose body matches the regexp. Evaluating such a
118 condition requires to read the full mail from the original mboxes,
119 which can be slow. To speed things up, all the header conditions are
120 checked first.
121 .TP
122 \fB8h\fR, \fB24h\fR, \fB48h\fR, \fBweek\fR, \fBmonth\fR, \fBtrimester\fR, and \fByear\fR
123
124 select mails received during the last 8, 24, 48, 7 * 24 hours, 31 *
125 24 hours, 92 * 24 hours, and 365 * 24 hours respectively.
126 .TP
127 \fBtoday\fR
128
129 selects mails received since midnight.
130 .TP
131 \fByesterday\fR
132 selects mails received yesterday.
133 .TP
134 \fBmonday\fR, \fBtuesday\fR, ..., \fBsunday\fR
135 select mails received the most recent such day of the week.
136
137 .SH "EXAMPLES"
138
139 The command
140
141 .P
142 .nf
143 .B mymail --db-file-output /tmp/mymail/2010-2011/mymail.db \e
144 .B \ \ \ \ \ \ \ --index \e
145 .B \ \ \ \ \ \ \ ~/archives/mails/2010 ~/archives/mails/2011
146
147 .fi
148 will index all the mbox files present in the directories
149 ~/archives/mails/2010 and ~/archives/mails/2011 (recursively) and
150 create an index file /tmp/mymail/2010-2011/mymail.db
151
152 And
153
154 .P
155 .nf
156 .B mymail --db-pattern '\.db$' --db-root /tmp/mymail \e
157 .B \ \ \ \ \ \ \ --output /tmp/mymail.mbox \e
158 .B \ \ \ \ \ \ \ --search 'p bob.something' \e
159 .B \ \ \ \ \ \ \ --search '!s spam' \e
160 .B \ \ \ \ \ \ \ --search 'month'
161
162 .fi
163 will search in all the database files *.db located (recursively) in
164 /tmp/mymail, for all the mails having "bob.something" as sender or
165 recipient, without "spam" in the subject, received over the last 31
166 days, and create an mbox file /tmp/mymail/mbox.
167
168 .SH "FILES"
169
170 The configuration file is by default ${HOME}/.mymailrc and can also be
171 specified through the MYMAILRC environment variable.
172
173 It allows to define aliases of search keys, such as:
174
175 .P
176 .nf
177 .B alias tod=today
178
179 .SH "BUGS"
180
181 The search in the mail bodies does not decode mimencoding mails, hence
182 will not catch patterns in encoded text.
183
184 The mbox format is not clear for multipart messages, since the 'From'
185 may not always be quoted properly, so mymail uses a strict regexp to
186 recognize such lines.
187
188 The date format for the Date: field is not standardized, and may not
189 be parsed properly. When that happens, the time stamp from the
190 leading 'From' line of the mail, which has a canonical form, is used.
191
192 .SH "AUTHOR"
193
194 Written by Francois Fleuret <francois@fleuret.org> and distributed
195 under the terms of the GNU General Public License version 3 as
196 published by the Free Software Foundation. This is free software: you
197 are free to change and redistribute it. There is NO WARRANTY, to the
198 extent permitted by law.