increase MAXLINE; it may be reached for unicode strs
[mailx.git] / README
blob08a121b1f3cf50bae4c644f6d3516763d9be7961
1 MAILX
2 =====
4 Mailx is a small mail client.  It can handle large mbox files.
5 It should not be confused with the original mailx program and
6 for this reason this program could be called neatmailx (just
7 like my neat* programs).  After trying many different programs,
8 I wrote mailx together with my pop3 and smtp clients (all of
9 which are available from http://litcave.berlios.de/) and now
10 I'm quite satisfied.
12 Mailx may not be suitable for everyone.  It does address most of
13 my needs:
15 * can handle large mboxes fast (at the cost of memory)
16 * uses external pagers (see mailpg at my litcave page) and editors
17 * can monitor mailboxes for new mails based on file timestamps
18 * gives the power to edit any header field of mails before sending
19 * is simple and understandable; easy to change it for new needs
21 But it lacks many features like customizable sorting, regular
22 expression searches, and handling mime attachments (it can decode mime
23 messages, though).  It also assumes mboxes are not edited concurrently
24 unless for appending messages.
26 SETTING UP
27 ==========
29 mailx is configured solely by editing config.h.
31 * PAGER: used in page command for showing messages
32 * EDITOR: editor (~e command when sending mails)
33 * VISUAL: visual editor (~v command when sending mails)
34 * SENDMAIL: the command used for sending mails
35 * FOLDER: folder containing mboxes
36 * RECORD: the mbox to append sent mails
37 * FROM: the address to be used for sending mails
38 * DRAFT: address of mail draft
39 * HOSTNAME: hostname used for creating message ID header field
40 * hdr_filt[]: list of headers to include before piping to PAGER
41 * boxes[]: the list of incoming mboxes
43 * NHEAD: the number of messages to show in head command
44 * WIDTH: screen width
45 * DIGITS: the number of digits in head command
46 * THREADED: show messages in thread
47 * TRIM_RE: trip "Re:" for replied messages in head command
48 * COLORS: if nonzero, use colors in head command
49 * MAXMIME: the maximum number of decoded mime messages in memory
51 STARTING
52 ========
54 Mailx can be started in two modes.  The mbox browse mode could
55 be used for browsing mailboxes, sending and replying mails,
56 and manipulating mbox messages (see mailboxes for specifying
57 mbox name):
59   mailx -f +inbox
61 The send mode could be used to send mails; mailx exits as soon
62 as the mail is sent or discarded (see writing mails section):
64   mailx address
66 COMMANDS
67 ========
69 Most mailx commands follow this pattern:
71   [messages]cmd [arguments]
73 Arguments are command specific.  Messages specify which messages
74 the command should be applied on:
76 * '3': third message
77 * '$': the last message
78 * '.': current message
79 * ',': the next new message
80 * '-': the previous message
81 * '+': the next message
82 * '-3': the third previous message
83 * '/(subject Hello)': all messages which have "Hello" in their subject
84 * '/(hdr word)': all messages which have "word" in their "hdr" header
85 * '/n(hdr word)': like "/(hdr word)" but include only new messages
86   (same could be used 'u' or ' ')
87 * 'X,Y': all messages between X and Y (X and Y can be any single message
88   specification
89 * '%': all messages in current mbox
91 By default, all messages work on the current message which is marked
92 with '>' in the head command output.
94 Mailx commands:
95 * [msg]p/page: pipe current message to PAGER
96 * [msg]n/next/[ret]: pipe next message to PAGER
97 * [msg]h/ls/head/header: show message list; set the first specified
98   message as current (marked with '>' in the first column)
99 * cd/file [mbox]:
100   If invoked with no arguments, show current mbox statistics, otherwise
101   switch current mbox (see mbox names sections).
102 * inc:
103   Check for new messages in current mbox and load them if available.
104 * [page]z:
105   Show the next page of mail listing.  A prefix could specify which page
106   to show.
107   * 2z: show the second page
108   * -z: show previous page
109   * +2z: show the 2nd next page
110 * m/mail [address]:
111   Start a new mail; see writing mail section.
112 * [msgs]cp/copy [mbox]:
113   Copy the specified messages to the given mbox.
114 * [msgs]mv/move [mbox]:
115   Move the specified messages to the given mbox.
116 * [msg]r/reply:
117   Reply the specified message.
118 * [msg]cat:
119   Like page, pipes a message to PAGER except that all headers are present.
120 * [msgs]rm/d/delete:
121   Remove specified messages.
122 * [msgs]u/undel/undelete:
123   Clear specified messages if marked for deletion.
124 * q/quit:
125   Save current mbox and exit.
126 * x/exit/xit:
127   Exit mailx without saving current mbox.
128 * new/news:
129   Show the list of mboxes that have new mails.
130 * [msgs]mime:
131   Decode mime messages.
133 MAILBOXES
134 =========
136 Commands like cp, mv and cd take an mbox as argument.  The valid values
137 are:
139 * ',': The first mbox in "boxes" list that has new mails (see "news" command).
140 * '.': Current mbox.
141 * 'path/mbox': mbox with the given path.
142 * '+mbox': FOLDER/mbox
144 WRITING MAILS
145 =============
147 When mailx is invoked as "mailx address" or after mail or
148 reply commands mailx enters send mode.  In this mode the mail
149 is written to and edited in DRAFT file (that means no concurrent
150 mail composition is allowed, but that could be overcome easily
151 if one needs to do so).  Commands are specified after a tilde:
153 * ~e: edit the message in EDITOR
154 * ~v: edit the message in VISUAL
155 * ~x/~q: discard current message
156 * ~.: send current message (pipe into SENDMAIL)
157 * ~p: pipe current message into PAGER