Changed indentation to avoid a gcc warning.
[mymail.git] / mymail.1
index 18fc287..09fa324 100644 (file)
--- a/mymail.1
+++ b/mymail.1
@@ -1,4 +1,4 @@
-.TH "MYMAIL" "0.9" "February 2013" "Francois Fleuret" "User Commands"
+.TH "MYMAIL" "0.9.10" "July 2014" "Francois Fleuret" "User Commands"
 
 \" This man page was written by Francois Fleuret <francois@fleuret.org>
 \" and is distributed under a Creative Commons Attribution-Share Alike
@@ -10,16 +10,15 @@ mymail \- A simple command line utility for indexing and searching mbox files
 
 .SH "SYNOPSIS"
 
-\fBmymail\fP [\fIoptions\fR] [\fI<mbox dir1>\fR [\fI<mbox dir2>\fR ...]]
+\fBmymail\fP [\fIoptions\fR] [\fI<mbox dir1>\fR [\fI<mbox dir2>\fR ... ]|\fI<db file1>\fR [\fI<db file2>\fR ... ]]
 
 .SH "DESCRIPTION"
 
-\fBmymail\fP is a command line utility to index mbox files and perform
-quick searches based on sender, subject, etc.
+\fBmymail\fP is a command line utility to index mbox files, search for
+mails based on sender, subject, etc. and generate result mbox files.
 
-It is similar in spirit to other existing software such as mu or
-notmuch, but does not use a real database backend to store and query
-the index.
+It is similar in spirit to other tools such as mu or notmuch, but is
+overall simpler.
 
 .SH "OPTIONS"
 .TP
@@ -29,6 +28,17 @@ display help and exit
 \fB-v\fR, \fB--version\fR
 print the version number
 .TP
+\fB-q\fR, \fB--quiet\fR
+do not write information during the search
+.TP
+\fB-t\fR, \fB--use-leading-time\fR
+use the time stamp from the leading line of each mail and not the
+Date: field
+.TP
+\fB-f\fR, \fB--do-not-discard-mails-from-the-future\fR
+keep mails with a date (more than 24h) in the future, which are
+discarded by default
+.TP
 \fB-p <db filename pattern>\fR, \fB--db-pattern <db filename pattern>\fR
 set the db filename pattern for recursive search
 .TP
@@ -38,15 +48,30 @@ set the db root path for recursive search
 \fB-l <db filename list>\fR, \fB--db-list <db filename list>\fR
 set the semicolon-separated list of db files for search
 .TP
+\fB-m <mbox filename pattern>\fR, \fB--mbox-pattern <mbox filename pattern>\fR
+set the mbox filename pattern for recursive search
+.TP
 \fB-s <search pattern>\fR, \fB--search <search pattern>\fR
-search for matching mails in the db file
+search for matching mails in the db file. Multiple search requests can
+be combined, and only mails fulfilling all of them will be extracted.
 .TP
-\fB-d <db filename>\fR, \fB--db-file <db filename>\fR
+\fB-d <db filename>\fR, \fB--db-file-output <db filename>\fR
 set the db filename for indexing
 .TP
 \fB-i\fR, \fB--index\fR
 index mails in the mailboxes located recursively anywhere in the
 directories following the options on the command lines
+.TP
+\fB-o <output filename>\fR, \fB--output <output filename>\fR
+set the result mbox filename. If it is not set, the standard output is
+used
+.TP
+\fB-n <max number of mails>\fR, \fB--nb-mails-max <max number of mails>\fR
+set the maximum number of mails to extract (default is 250)
+.TP
+\fB-a <search key>\fR, \fB--default-search <search key>\fR
+set the default search key. If a search request is not understood,
+it is interpreted as the regexp with this default search key
 
 .SH "ENVIRONMENT VARIABLES"
 
@@ -61,54 +86,111 @@ defaut value for the --db-root argument
 defaut value for the --db-list argument
 .TP
 \fBMYMAIL_DB_FILE\fR
-defaut value for the --db-file argument
+defaut value for the --db-file-output argument
+.TP
+\fBMYMAILRC \fR
+configuration file, default is ${HOME}/.mymailrc
+
+.SH "SEARCH CONDITIONS"
 
-.SH "SEARCH SYNTAX"
+A search condition is either a time-related condition
+('today', 'yesterday', etc.), or a single-character key, followed by a
+space and a regexp, which can itself contain spaces.
 
-The search conditions take the form of a single letter followed by a
-space and a regexp, which can itself contain spaces. If the condition
-is prefaced by the character "!" it is negated, and has to be false
-for a mail to be selected.
+If it is prefaced by the character "!", a condition is negated and has
+to be false for a mail to be selected.
 
 .TP
-\fBf <regexp>\fR (from) selects mails whose leading line From, or
-fields From:, or Reply-To: matches the regexp.
+\fBf <regexp>\fR (from)
+selects mails whose leading line 'From', or fields From:, Sender:,
+Reply-To:, or Return-Path: matches the regexp.
+.TP
+\fBt <regexp>\fR (to)
+selects mails whose field To:, Cc:, or Bcc: matches the regexp.
+.TP
+\fBp <regexp>\fR (participant)
+selects mails that would be selected by \fBf\fR or \fBt\fR.
 .TP
-\fBt <regexp>\fR (to) selects mails whose field To:, Cc:, or Bcc: matches the regexp.
+\fBs <regexp>\fR (subject)
+selects mails whose field Subject: matches the regexp.
 .TP
-\fBp <regexp>\fR (participant) selects mails whose leading line From,
-or fields From:, Reply-To:, To:, Cc:, or Bcc: matches the regexp.
+\fBd <regexp>\fR (date)
+selects mails whose field Date: matches the regexp.
 .TP
-\fBs <regexp>\fR (subject) selects mails whose field Subject: matches the regexp.
+\fBb <regexp>\fR (body)
+selects mails whose body matches the regexp. Evaluating such a
+condition requires to read the full mail from the original mboxes,
+which can be slow. To speed things up, all the header conditions are
+checked first.
 .TP
-\fBd <regexp>\fR (date) selects mails whose field Date: matches the regexp.
+\fB1h\fR, \fB2h\fR, \fB4h\fR, \fB8h\fR, \fB24h\fR, \fB48h\fR, \fBweek\fR, \fB2weeks\fR, \fBmonth\fR, \fBtrimester\fR, \fBsemester\fR, and \fByear\fR
+select mails received during the last
+1, 2, 4, 8, 24, 48, 7 * 24 hours, 14 * 24 hours, 31 * 24 hours, 92 *
+24 hours, 185 * 24 hours, and 365 * 24 hours respectively.
+.TP
+\fBtoday\fR
+selects mails received since midnight.
+.TP
+\fByesterday\fR
+selects mails received yesterday.
+.TP
+\fBmonday\fR, \fBtuesday\fR, ..., \fBsunday\fR
+select mails received the most recent such day of the week.
 
 .SH "EXAMPLES"
 
-To index all the mbox files present in the directories
+The command
+
+.P
+.nf
+.B mymail --db-file-output /tmp/mymail/2010-2011/mymail.db \e
+.B \ \ \ \ \ \ \ --index \e
+.B \ \ \ \ \ \ \ ~/archives/mails/2010 ~/archives/mails/2011
+
+.fi
+will index all the mbox files present in the directories
 ~/archives/mails/2010 and ~/archives/mails/2011 (recursively) and
-create a database file /tmp/mymail/2010-2011/mymail.db
+create an index file /tmp/mymail/2010-2011/mymail.db
+
+And
 
-.RS
-.EX
-mymail --db-file /tmp/mymail/2010-2011/mymail.db --index ~/archives/mails/2010 ~/archives/mails/2011
-.EE
-.RE
+.P
+.nf
+.B mymail --db-pattern '\.db$' --db-root /tmp/mymail \e
+.B \ \ \ \ \ \ \ --output /tmp/mymail.mbox \e
+.B \ \ \ \ \ \ \ --search 'p bob.something' \e
+.B \ \ \ \ \ \ \ --search '!s spam' \e
+.B \ \ \ \ \ \ \ --search 'month'
 
-To search in all the database files *.db located (recursively) in
-/tmp/mymail, for all the mails having bob.something as sender or
-recipient, without "spam" in the subject, and create a result mbox
-file /tmp/mymail/mbox
+.fi
+will search in all the database files *.db located (recursively) in
+/tmp/mymail, for all the mails having "bob.something" as sender or
+recipient, without "spam" in the subject, received over the last 31
+days, and create an mbox file /tmp/mymail/mbox.
 
-.RS
-.EX
-mymail --db-pattern '\\.db$' --db-root /tmp/mymail --search 'p bob.something' --search '!s spam' > /tmp/mymail.mbox
-.EE
-.RE
+.SH "FILES"
+
+The configuration file is by default ${HOME}/.mymailrc and can also be
+specified through the MYMAILRC environment variable.
+
+It allows to define aliases of search keys, such as:
+
+.P
+.nf
+.B alias tod=today
 
 .SH "BUGS"
 
-None known, probably many.
+The search in the mail bodies does not decode mimencoding mails, hence
+will not catch patterns in encoded text.
+
+The mbox format is not clear for multipart messages, since the 'From'
+may not always be quoted properly, so mymail uses a strict regexp to
+recognize such lines.
+
+The date format for the Date: field is not standardized, and may not
+be parsed properly. When that happens, the time stamp from the
+leading 'From' line of the mail, which has a canonical form, is used.
 
 .SH "AUTHOR"