|
|
1.1 root 1: .TH MAIL 1
2: .SH NAME
3: mail, edmail, sendmail, seemail, aliasmail, smtp, smtpd, to, vwhois, vismon \- mail commands
4: .SH SYNOPSIS
5: .B mail
6: [
7: .I arg ...
8: ]
9: .PP
10: .B upas/edmail
11: [
12: .B -cmpre
13: ]
14: [
15: .B -[fF]
16: .I mfile
17: ]
18: .PP
19: .B upas/sendmail
20: [
21: .B -xr#
22: ]
23: .I person ...
24: .PP
25: .B upas/to
26: [
27: .B -x#
28: ]
29: .PP
30: .B seemail
31: [
32: .B -as
33: ] [
34: .B -u
35: .I user
36: ] [
37: .B -f
38: .I file
39: ] [
40: .B -r
41: .I reminders
42: ]
43: .PP
44: .B upas/aliasmail
45: .I name ...
46: .PP
47: .B smtp
48: [
49: .B -fdu
50: ]
51: [
52: .BI -h host
53: ]
54: [
55: .BI -g gateway
56: ]
57: [
58: .I .domain
59: ]
60: .I "address sender rcpt-list"
61: .PP
62: .B smtpd
63: [
64: .B -d
65: ]
66: .PP
67: .B vwhois
68: .I people ...
69: .PP
70: .B vismon
71: .I system
72: .SH DESCRIPTION
73: .SS Mail
74: Mail invokes
75: .I edmail
76: .B -m
77: when no
78: .I persons
79: appear on the command line.
80: It invokes
81: .I sendmail
82: otherwise.
83: .SS "Mailbox Editing"
84: .I Edmail
85: edits a mailbox.
86: The default mailbox is
87: .BI /mail/box/ username /mbox\f1.
88: The
89: .B -f
90: and
91: .B -F
92: command line options and the
93: .B s
94: and
95: .B S
96: editing commands specify an alternate mailbox.
97: Unrooted path names are interpreted relative to
98: .BI /mail/box/ username
99: for
100: .B -f
101: and
102: .B s
103: and relative to the current directory for
104: .B -F
105: and
106: .BR S .
107: If the
108: .I mfile
109: argument is omitted, the name defaults to
110: .BR stored .
111: .PP
112: The options for
113: .I edmail
114: are:
115: .TF "-F mfile"
116: .TP
117: .B -c
118: Create a mailbox.
119: .PD 0
120: .TP
121: .B -r
122: Reverse: print mail in first-in, first-out order.
123: .TP
124: .B -p
125: Print all the mail messages without prompting for commands.
126: .TP
127: .B -m
128: Use a manual style of interface, that is, print no messages unless directed to.
129: .TP
130: .BI -f " mfile"
131: Read messages from the specified file (see above) instead of the default mailbox.
132: .TP
133: .BI -F " mfile"
134: same as
135: .B -f
136: with different starting point for relative paths (see above).
137: .TP
138: .B -e
139: Check silently if there is anything in the mailbox;
140: return zero (true) if so, non-zero otherwise.
141: .PD
142: .PP
143: .I Edmail
144: prints messages one at a time,
145: prompting between messages.
146: After printing a prompt
147: .I edmail
148: reads a line from the standard input
149: to direct disposition of the message.
150: Commands, as in
151: .IR ed (1),
152: are of the form
153: .RI `[ range ]
154: .I command
155: .RI [ arguments ]'.
156: The command is applied to each message in the (optional) range
157: addressed by message number and/or regular expressions
158: in the style of
159: .IR ed (1).
160: A regular expression in slashes searches among header
161: (postmark) lines; an expression in percent signs searches on
162: message content.
163: .TP 1.1i
164: .I address
165: to indicate a single message header
166: .PD0
167: .TP
168: .IB address , address
169: to indicate a range of contiguous message headers
170: .TP
171: .BI g/ expression /
172: to indicate all message headers matching the regular
173: .IR expression .
174: .PD
175: .PP
176: The commands are:
177: .PD 0
178: .TP 1.1i
179: .B b
180: Print the headers for the next ten messages.
181: .TP
182: .B d
183: Mark message to be deleted upon exiting
184: .IR edmail .
185: .TP
186: .B h
187: Print the disposition, size in characters, and header line of the message.
188: .TP
189: .BI m " person ...
190: Mail the message to the named
191: .IR persons .
192: .TP
193: .BI M " person ...
194: Same as
195: .BI m
196: except that lines typed
197: on the terminal (terminated by
198: .BR EOT )
199: are prefixed to the message.
200: .TP
201: .B p
202: Print message. An interrupt stops the printing.
203: .TP
204: .B r
205: Reply to the sender of the message.
206: .TP
207: .B R
208: Like
209: .L r
210: but with the message
211: appended to the reply.
212: .TP
213: .BI s " mfile"
214: (Save) Append the message to the specified mailbox (see above).
215: .TP
216: .BI S " mfile"
217: Same as
218: .B s
219: with different starting point for relative paths (see above).
220: .TP
221: .B q
222: Put undeleted mail back in the mailbox and stop.
223: .TP
224: EOT (control-D)
225: Same as
226: .LR q .
227: .TP
228: .BI w " file
229: Same as
230: .B s
231: with the mail header line(s) stripped.
232: .TP
233: .BI W " file
234: Same as
235: .B w
236: with different starting point for relative paths (see above).
237: .TP
238: .B u
239: Remove mark for deletion.
240: .TP
241: .B x
242: Exit, without changing the mailbox file.
243: .TP
244: .B ?
245: Print a command summary.
246: .TP
247: .BI | command
248: Run the
249: .I command
250: with the message as standard input.
251: .TP
252: .BI ! command
253: Escape to the shell to do
254: .IR command .
255: .TP
256: .B \&=
257: Print the number of the current message.
258: .PD
259: .ne 5
260: .SS "Sending Mail
261: .PP
262: .I Sendmail
263: takes the standard input up to an end-of-file
264: and adds it to each
265: .I person's
266: mailbox.
267: When running in an
268: .IR 8½ (1)
269: window,
270: .I sendmail
271: automatically puts the window into Hold mode (see
272: .IR 8½ (1));
273: this means that the message can be edited freely,
274: because nothing will be sent to
275: .I sendmail
276: until the ESC key is hit to exit Hold mode.
277: With option
278: .BR -# ,
279: .I sendmail
280: does not send mail, but instead reports
281: what command would be used to send the mail.
282: With option
283: .BR -x ,
284: .I sendmail
285: does not send mail, but instead reports
286: the full mail address of the recipient.
287: Option
288: .B -r
289: tells sendmail that its input is via a pipe from
290: another program.
291: It won't turn on Hold mode and will expect a From
292: line at the start of the message to provide the
293: name of the sender and timestamp.
294: .PP
295: The message is automatically postmarked with the
296: sender's name and date.
297: Lines that look like postmarks are
298: prefixed with
299: .LR > .
300: .PP
301: .I Person
302: is a user name on the local system,
303: a name for which there is an
304: .IR alias ,
305: or a network mail address.
306: .PP
307: .I To
308: is a preprocessor for
309: .IR sendmail .
310: It takes a mail message as standard input,
311: looks through it for
312: .BR To: ,
313: .BR Cc: ,
314: and
315: .B Bcc:
316: header lines, and calls sendmail with the addresses
317: in those header lines as destinations.
318: The
319: .B Bcc:
320: header lines are removed before passing the message to
321: .IR sendmail .
322: .SS "Addressing Conventions"
323: The local convention for converting addresses
324: is given by rewrite rules in
325: .BR /mail/lib/rewrite ;
326: see
327: .IR rewrite (6).
328: The conventions generally used are:
329: .IP \-
330: A
331: .I person
332: containing no
333: .L !
334: or
335: .L @
336: is considered a local user or local alias.
337: It is passed as an argument to
338: .I aliasmail
339: which returns either the expanded alias or
340: .BI local! person
341: if there is no alias of that name.
342: .IP \-
343: A canonical network mail address has the form
344: .IB machine ! ... ! name\f1,
345: with one or more machines mentioned.
346: .SS "Aliasmail"
347: .I Aliasmail
348: expands mail aliases, its arguments, according to alias files.
349: Each line of an alias file begins with
350: .B #
351: (comment) or with a name.
352: The rest of a name line gives the expansion.
353: The expansion may contain multiple addresses and may be continued
354: to another line by appending a backslash.
355: Items are separated by white space.
356: .PP
357: In expanding a name, the sender's personal alias file
358: .BI /mail/box/ username /names
359: is checked first.
360: Then the system alias files, listed one per line in
361: .BR /mail/lib/namefiles ,
362: are checked in order.
363: If the name is not found, the expansion is taken to be
364: .BI local! name\f1.
365: .SS Mailboxes
366: Incoming mail for a user
367: .I username
368: is put in the file
369: .BI /mail/box/ username /mbox
370: unless either the file
371: .BI /mail/box/ username /forward
372: or
373: .BI /mail/box/ username /pipeto
374: exists.
375: The mailbox must have append-only and exclusive-access mode
376: (see
377: .IR chmod (1)).
378: A user must create his or her own mailbox using the
379: .B -c
380: option of
381: .IR edmail .
382: Mailboxes are created writable (append-only) but not readable by others.
383: .SS Forwarding
384: If the file
385: .BI /mail/box/ username /forward
386: exists and is readable by everyone, incoming mail
387: will be forwarded to the addresses contained in the first line of the file.
388: The file may contain multiple addresses.
389: Forwarding loops are caught and resolved by local delivery.
390: .SS Filtering
391: If the file
392: .BI /mail/box/ username /pipeto
393: exists and is readable and executable by everyone,
394: it will be run for each incoming message for the user.
395: The message will be piped to it rather
396: than appended to his/her mail box.
397: The file is run as user
398: .BR none .
399: .SS Misc
400: .PP
401: The
402: .I seemail
403: command notifies when a new message
404: arrives in your mailbox.
405: It reads a log
406: .IR file ,
407: default
408: .BR /sys/log/mail ,
409: of incoming messages.
410: It runs continuously where it is invoked, displaying the
411: names and icons of senders of new messages.
412: The
413: .B -a
414: flag causes it to initialize by displaying all the faces in the log;
415: .B -s
416: causes it to overwrite multiple appearances of the same face rather
417: than repeatedly displaying it.
418: The
419: .B -u
420: option displays incoming mail for the specified user instead of yourself.
421: .PP
422: .IR Seemail 's
423: .B -r
424: option causes it to announce appointments described in the file
425: .IR reminders .
426: Each line of the appointment file contains the
427: month, day, hour, minute and room (any string of non-spaces)
428: of an appointment, in a format compatible with
429: .IR calendar (1).
430: The hour is 24-hour time. The fields
431: may be separated by white space, commas, slashes or colons,
432: and the room may be followed by arbitrary text.
433: On the day of each appointment,
434: .I seemail
435: displays a clock-face icon with the appointment's room and time,
436: once at midnight (or when the program starts), then an hour before,
437: then 15 minutes before, then 1 minute
438: before, then at the appointment time. At the same time, it displays
439: the room and any following text on a line below the
440: clock time at the top of its window.
441: .PP
442: .I Vwhois
443: just displays in the
444: .I seemail
445: window
446: the icons of
447: .IR people .
448: .I Vismon
449: is a version of
450: .I seemail
451: that connects to a remote Unix (not Plan 9)
452: system to look for mail arriving there.
453: .PP
454: .I Smtp
455: sends the mail message from standard input
456: to the users
457: .I rcpt-list
458: on the host at network address
459: .I address
460: using the Simple Mail Transfer Protocol.
461: The return address of the mail will contain the local
462: system name from the environment variable
463: .I sysname
464: and the user
465: .IR sender .
466: If
467: .I .domain
468: is given, it is appended to the end of the system name.
469: The
470: .B -u
471: option sends the mail in the standard Unix format instead
472: of RFC822 format.
473: The
474: .B -f
475: flag just prints out the converted message rather than
476: sending it to the destination.
477: The
478: .B -g
479: option specifies a gateway system to pass the message to if smtp can't
480: find an address or MX entry for the destination system.
481: The
482: .B -d
483: option turns on debugging output to standard error.
484: .PP
485: .I Smtpd
486: receives a message using the Simple Mail Transfer Protocol.
487: Standard input and output are the protocol connection.
488: The
489: .B -d
490: option turns on debugging output to standard error.
491: .I Smtpd
492: is normally run by a network listener such as
493: .IR listen (8).
494: .SH FILES
495: .TF /mail/box/*/dead.letter
496: .TP
497: .B /sys/log/mail
498: mail log file
499: .TP
500: .B /mail/box/*
501: mail directories
502: .TP
503: .B /mail/box/*/mbox
504: mailbox files
505: .TP
506: .B /mail/box/*/forward
507: forwarding address(es)
508: .TP
509: .B /mail/box/*/pipeto
510: mail filter
511: .TP
512: .B /mail/box/*/L.reading
513: mutual exclusion lock for multiple mbox readers
514: .TP
515: .B /mail/box/*/L.mbox
516: mutual exclusion lock for altering mbox
517: .TP
518: .B /mail/box/*/dead.letter
519: unmailable text
520: .TP
521: .B /mail/box/*/names
522: personal alias files
523: .TP
524: .B /mail/lib/rewrite
525: rules for handling addresses
526: .TP
527: .B /mail/lib/namefiles
528: lists files to search for aliases in
529: .TP
530: .B /lib/face/48x48x?
531: directories of icons for
532: .I seemail
533: .SH SOURCE
534: .TF /sys/src/cmd/upas
535: .TP
536: .B /rc/bin/mail
537: .TP
538: .B /sys/src/cmd/upas
539: source for commands in
540: .B /bin/upas
541: .TP
542: .B /sys/src/cmd/seemail
543: .TP
544: .B /rc/bin/vismon
545: .TP
546: .B /rc/bin/vwhois
547: .SH "SEE ALSO"
548: .IR face (6),
549: .IR rewrite (6)
550: .SH BUGS
551: .I Edmail
552: truncates
553: long headers for searching.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.