summaryrefslogtreecommitdiff
path: root/static/v10/man1/mail.1
blob: 2fa981c0ee3bc62e6a8b6572207c948762d6120e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
'\"macro stdmacro
.if n .pH g1.mail %W% of %G%
.nr X
.if \nX=0 .ds x} mail 1 "Essential Utilities" "\&"
.if \nX=1 .ds x} mail 1 "Essential Utilities"
.if \nX=2 .ds x} mail 1 "" "\&"
.if \nX=3 .ds x} mail "" "" "\&"
.TH \*(x}
.SH NAME
\f4mail\f1, \f4rmail\f1 \- read mail or send mail to users
.SH SYNOPSIS
.SS Sending mail:
.PP
\f4mail\f1
[
\f4\-tw\f1
] [
\f4\-m\f1
.I message_type
]
\f2recipient . . .\f1
.PP
\f4rmail\f1
[
\f4\-tw\f1
] [
\f4\-m\f1
.I message_type
]
\f2recipient . . .\f1
.PP
.SS Reading mail:
.PP
\f4mail\f1
[
\f4\-ehpPqr\f1
] [
\f4\-f\f1
\f2file\f1
]
.PP
.SS Forwarding mail:
.PP
\f4mail \-F\fP \f2recipient . . .\f1
.PP
.SS Debugging:
.PP
\f4mail\fP [ \f4\-x\fP\f2debug_level\fP ] [ \f2other_mail_options\fP ]
\f2recipient . . .\f1
.PP
\f4mail\f1
\f4\-T\f1
.I mailsurr_file
\f2recipient . . .\f1
.SH DESCRIPTION
.PP
A
.I recipient\^
is usually a user name recognized by
\f4login\fP(1).
When
.I recipients\^
are named,
\f4mail\fP
assumes a message is being sent
(except in the case of the \f4\-F\fP option).
It reads from the standard input up to an end-of-file
(cntrl-d) or,
if reading from a terminal device,
until it reads a line consisting of just a period. 
When either of those indicators is received,
\f4mail\fP
adds the 
.I letter\^
to the
.I mailfile
for each
.IR recipient .
.PP
A \f2letter\fP is composed of some \f2header lines\fP followed by a blank
line followed by the \f2message content\fP.
The \f2header lines\fP section of the letter consists of one or more UNIX
postmarks:
.sp .5
.RS
\f4From\f1 \f2sender date_and_time\f1 [\f4remote from\f1 \f2remote_system_name\f1]
.RE
.sp .5
followed by one or more standardized message header lines of the form:
.sp .5
.RS
\f2keyword-name\f4\f4:\f1 [\f2printable text\f1]
.RE
.sp .5
where \f2keyword-name\fP is comprised of any printable,
non-whitespace, characters other than colon (`:').
A \f4Content-Length:\fP header line,
indicating the number of bytes in the \f2message content\fP will always be
present.
A \f4Content-Type:\fP header line that describes the type of the
\f2message content\fP (such as text, binary, multipart, etc.) will always
be present unless the letter consists of only header lines with no message
content.
Header lines may be contined on the following line if that line starts with
white space.
.SS Sending mail:
.PP
The following command-line arguments affect SENDING mail:
.PD 0
.TP
\f4\-m\f1
causes a \f4Message-Type:\fP line to be added to the message header with
the value of \f2message_type\fP.
.TP
\f4\-t\f1
causes a \f4To:\f1 line to be added to the message header
for each of the intended recipients.
.TP
\f4\-w\f1
causes a letter to be sent to a remote recipient without waiting for the
completion of the remote transfer program.
.PD
.PP
If a letter is found to be undeliverable, it is returned to the
sender with diagnostics that indicate the location and nature of the
failure.
If 
\f4mail\fP
is interrupted during input,
the message is saved in the file
\f4dead.letter\f1
to allow editing and resending.
\f4dead.letter\f1
is always appended to,
thus preserving any previous contents. 
The initial attempt to append to (or create) \f4dead.letter\fP will be in the
current directory.
If this fails, \f4dead.letter\fP will be appended to (or created in) the user's
login directory.
If the second attempt also fails, no \f4dead.letter\fP processing will be
done.
.PP
\f4rmail\fP
only permits the sending of mail;
\f4uucp\fP(1C)
uses
\f4rmail\fP
as a security precaution.
Any application programs that generate mail messages should be sure to
invoke \f4rmail\fP rather than \f4mail\fP for message transport and/or
delivery.
.PP
If the local system has the
Basic Networking Utilities installed,
mail may be sent to a recipient on a remote system. 
There are numerous ways to address mail to recipients on remote systems
depending on the transport mechanisms available to the local system.
The two most prevalent addressing schemes are UUCP-style and
Domain-style.
With UUCP-style addressing,
remote recipients are specified 
by prefixing the recipient name with the remote system name and 
an exclamation point (such as sysa!user).
A series of system names separated by exclamation points
can be used to direct a letter through an extended
network (such as \f4sysa!sysb!sysc!user\f1).
With Domain-style addressing,
remote recipients are specified by appending an `\f4@\f1' and domain (and
possibly sub-domain) information to the recipient name
(such as \f4user@sf.att.com\f1).
(The local System Administrator should be consulted for details on which
addressing conventions are available on the local system.)
.PP
.SS Reading Mail:
.PP
The following command-line arguments affect READING mail:
.PD 0
.TP
\f4\-e\f1
causes mail not to be printed.
An exit value of 0 is returned if the user has mail;
otherwise, an exit value of 1 is returned.
.TP
\f4\-h\f1
causes a window of headers to be initially displayed rather than the latest
message.  The display is followed by the `\f4?\f1' prompt.
.TP
\f4\-p\f1
causes all messages to be printed without prompting for disposition.
.TP
\f4\-P\f1
causes all messages to be printed with \f2all\fP header lines displayed,
rather than the default selective header line display.
.TP
\f4\-q\f1
causes
\f4mail\fP
to terminate after interrupts.
Normally an interrupt causes only the
termination of the message being printed.
.TP
\f4\-r\f1
causes messages to be printed in first-in, first-out order.
.TP
\f\B\-f\fP\0\f2file\fP
causes
\f4mail\fP
to use
.I file\^
(such as
\f4mbox\f1)
instead of the default
.IR mailfile .
.PD
.PP
\f4mail\fP,
unless otherwise influenced by command-line arguments,
prints a user's mail messages
in last-in, first-out order.
The default mode for printing messages is to display only
those header lines of immediate interest.
These include, but are not limited to,
the UNIX \f4From\fP and \f4>From\fP postmarks,
\f4From:\fP,
\f4Date:\fP,
\f4Subject:\fP,
and \f4Content-Length:\fP header lines,
and any recipient header lines such as
\f4To:\fP,
\f4Cc:\fP,
\f4Bcc:\fP,
etc.
After the header lines have been displayed,
\f4mail\fP will display the contents (body) of the message only if it
contains no unprintable characters.
Otherwise, \f4mail\fP will issue a warning statement about the message
having binary content and \f4not\fP display the content.
(This may be overridden via the \f4p\fP command. See below.)
.PP
For each message,
the user is prompted with a
\f4?\f1,
and a line is read from the standard input.
The following commands are available
to determine the disposition of the message:
.PD 
.TP 21
\f4#\f1
Print the number of the current message.
.TP
\f4\-\f1
Print previous message.
.TP
<new-line>, \f4+\f1, or \f4n\f1
Print the next message.
.TP
\f4!\f2command\^\f1
Escape to the shell to do
.IR command .
.TP
\f4a\f1
Print message that arrived during the \f4mail\fP session.
.TP
\f4d\f1, or \f4dp\f1
Delete the current message and print the next message.
.TP
\f4d \f2n\fP\f1
Delete message number \f2n\fP.  Do not go on to next message.
.TP
\f4dq\f1
Delete message and quit \f4mail\fP.
.TP
\f4h\f1
Display a window of headers around current message.
.TP
\f4h \f2n\fP\f1
Display a window of headers around message number \f2n\fP.
.TP
\f4h a\f1
Display headers of all messages in the user's \f2mailfile\f1.
.TP
\f4h d\f1
Display headers of messages scheduled for deletion.
.TP
\f4m\fP [ \f2persons\^\fP ]
Mail (and delete) the current message to the named
\f2person\f1(\f2s\f1).
.TP
.I n
Print message number \f2n\fP.
.TP
\f4p\f1
Print current message again,
overriding any indications of binary (that is, unprintable) content.
.TP
\f4P\f1
Override default brief mode and print current message again,
displaying all header lines.
.TP
\f4q\f1, or cntrl-\s-1D\s+1
Put undeleted mail back in the
.I mailfile\^
and quit \f4mail\fP.
.TP
\f4r\f1 [ \f2users\^\fP ]
Reply to the sender, and other \f2user(s)\f1, then delete the
message.
.TP
\f4s\fP [ \f2files\^\fP ]
Save message in the named
\f2file\f1(\f2s\f1)\^
\f1(\f4mbox\f1
is default) and delete the message.
.TP
\f4u\f1 [ \f2n\fP ]
Undelete message number \f2n\fP (default is last read).
.TP
\f4w\fP [ \f2files\^\fP ]
Save message contents, without any header lines,
in the named
.I files\^
\f1(\f4mbox\f1
is default) and delete the message.
.TP
\f4x\f1
Put all mail back in the
.I mailfile\^
unchanged and exit \f4mail\fP.
.TP
\f4y\fP [ \f2files\^\fP ]
Same as save.
.TP
\f4?\f1
Print a command summary.
.PD
.PP
When a user logs in, the presence of mail,
if any,
is usually indicated.
Also,
notification is made if new mail arrives while using
\f4mail\fP.
.PP
The permissions of
.I mailfile\^
may be manipulated using \f4chgrp\fP in two ways to alter the function of
\f4mail\fP.
The other
permissions of the file may be read-write (0666), read-only (0664),
or neither read nor write (0660) to allow different levels of privacy.
If changed to other than the default (mode 0660), the file will be preserved
even when empty to perpetuate the desired permissions.
(The administrator may override this file preservation using the
\f4DEL_EMPTY_MAILFILE\fP option of \f4mailcnfg\fP.)
.P
The group id of the mailfile must be \f4mail\f1
to allow new messages to
be delivered, and the mailfile must be writable by group \f4mail\f1.
.SS Forwarding mail:
.PP
The following command-line argument affects FORWARDING of mail:
.sp .5
.PD 0
.TP
\f4\-F\fP\0\f2recipients\fP
Causes all incoming mail to be forwarded to 
.IR recipients .\^
The mailbox must be empty.
.PD
.PP
The \f4\-F\fP option causes the \f2mailfile\fP to contain
a first line of:
.sp .5
.RS
\f4Forward to\f1 \f2recipient\^. . .\f1
.RE
.sp .5
Thereafter, all mail sent to the owner of the
.I mailfile\^
will be forwarded to each
.IR recipient .
.PP
An \f4Auto-Forwarded-From: ...\f1 line
will be added to the forwarded message's header.
This is especially useful 
in a multi-machine environment
to forward all a person's mail to a single machine, 
and to keep the recipient informed if the mail
has been forwarded.
.PP
Installation and removal of forwarding is done with the
\f4\-F\f1
invocation option.
To forward all your mail to \f4systema!user\f1 enter:
.sp .5
.RS
\f4mail -F\0systema!user\f1
.sp .5
.RE
.PP
To forward to more than one recipient enter:
.sp .5
.RS
\f4mail \-F\0"user1,user2@att.com,systemc!systemd!user3"\f1
.sp .5
.RE
.PP
Note that when more than one recipient is specified, the entire list
should be enclosed in double quotes so that it may all be
interpreted as the operand of the \f4\-F\f1 option.
The list can be up to 1024 bytes; either commas or white space can
be used to separate users.
.PP
If the first character of any forwarded-to recipient name is the pipe
symbol (`\(bv'),
the remainder of the line will be interpreted as a command to pipe the
current mail message to. 
The command, known as a \f2Personal Surrogate\fP,
will be executed in the environment of the recipient of the
message (that is, basename of the \f2mailfile\fP).
For example, if the mailfile is \f4/var/mail/foo\f1,
\f4foo\fP will be looked up in \f4/etc/passwd\f1
to determine the correct user\s-1ID\s+1, group\s-1ID\s+1, and \f4HOME\f1 directory.
The command's environment will be set to contain only
\f4HOME\f1, \f4LOGNAME\f1, \f4TZ\f1, \f4PATH\f1
(= \f4/usr/bin:\f1), and \f4SHELL\f1 (= \f4/bin/sh\f1),
and the command will execute in the recipient's \f4HOME\f1 directory.
If the message recipient cannot be found in /etc/passwd,
the command will not be executed and a non-delivery notification with
appropriate diagnostics will be sent to the message's originator.
.PP
After the pipe symbol, escaped double quotes should be used
to have strings with embedded whitespace be considered as single arguments
to the command being executed.
No shell syntax or
metacharacters may be used unless the command specified is \f4/bin/sh\f1.
For example,
.sp .5
.RS
\f4mail\0\-F\0"\(bv/bin/sh \-c \e"shell_command_line\e""\f1
.RE
.sp .5
will work, but is not advised since using double quotes and
backslashes within the shell_command_line is difficult to do correctly and
becomes tedious \f4very\fP quickly.
.PP
Certain %keywords are allowed within the piped-to command specification
and will be textually substituted for \f2before\fP the command line is
executed.
.sp .5
.PD 0
.TP
\f4%R\fP
Return path to the message originator.
.TP
\f4%c\fP
Value of the \f4Content-Type:\f1 header line if present.
.TP
\f4%S\fP
Value of the \f4Subject:\f1 header line if present.
.PD
.PP
If the command being piped to exits with any non-zero value,
\f4mail\fP will assume that message delivery failed and will generate a
non-delivery notification to the message's originator. It is allowable to
forward mail to other recipients \f4and\fP pipe it to a command,
as in
.sp .5
.RS
\f4mail \-F\0"carol,joe,\(bvmyvacationprog %R"\f1
.RE
.PP
Two UNIX System facilities that use the forwarding of
messages to commands are \f4notify\fP(1),
which causes asynchronous notification of new mail,
and \f4vacation\fP(1),
which provides an auto-answer capability for messages when the recipient
will be unavailable for an extended period of time.
.PP
To remove forwarding enter:
.sp .5
.RS
\f4mail \-F\0"\^"\f1
.RE
.PP
The pair of double quotes is mandatory to set a NULL argument for
the \-F option.
.PP
In order for forwarding to work properly the
.I mailfile\^
should have \f4mail\fP as group ID,
and the group permission should be read-write.
.PP
\f4mail\fP will exit with a return code of \f40\fP if forwarding was
successfully installed or removed.
.SS Debugging:
.PP
The following command-line arguments cause \f4mail\fP to provide
DEBUGGING information:
.sp .5
.PD 0
.TP 22
\f4\-T\fP\0\f2mailsurr_file
causes \f4mail\fP to display how it will parse and interpret
the \f4mailsurr\fP file.
.TP
\f4\-x\fP\f2debug_level\fP
causes \f4mail\fP to create a trace file containing debugging information.
.PD
.PP
The \f4\-T\fP option requires an argument that will be taken as the
pathname of a test \f4mailsurr\f1 file.
If NULL (as in \f4\-T ""\f1),
the system \f4mailsurr\f1 file will be used.
To use, type '\f4mail\fP \f4\-T\fP \f2test_file\0recipient\fP' and some trivial
message (like "testing"), 
followed by a line with either just a dot (`.') or a cntrl-D.
The result of using the \f4\-T\f1 option will be displayed on standard output and
show the inputs and resulting transformations as \f4mailsurr\fP is
processed by the \f4mail\fP command for the indicated recipient.
Mail messages will never actually be sent or delivered when
the \f4\-T\f1 option is used.
.PP
The  \f4\-x\f1 option causes \f4mail\fP to create a file named
\f4/tmp/MLDBG\f2process_id\f1 that contains debugging information
relating to how \f4mail\fP processed the current message.
The absolute value of \f2debug_level\f1 controls the verboseness
of the debug information.
Zero implies no debugging. 
If \f2debug_level\f1 is greater than zero,
the debug file will be retained \f4only\f1 if \f4mail\fP encountered some
problem while processing the message.
If \f2debug_level\fP is less than zero the debug file will always be retained.
The \f2debug_level\f1 specified via \f4\-x\f1 overrides any specification
of \f4DEBUG\f1 in \f4/etc/mail/mailcnfg\f1.
The information provided by the \f4\-x\f1 option is esoteric and is
probably only useful to System Administrators.
The output produced by the \f4\-x\f1 option is a superset
of that provided by the \f4\-T\f1 option.
.SS Delivery Notification
Several forms of notification are available for mail by
including one of the following lines in the message header.
.PP
\f4Transport-Options:\f1 [ \f4/\f2options\f1 ]
.sp .2
\f4Default-Options:\f1 [ \f4/\f2options\f1 ]
.sp .2
\f4>To:\f1 \f2recipient\f1 [ \f4/\f2options\f1 ]
.PP
Where the ``/\f2options\f1'' may be one or more of the following:
.TP 12
\f4/delivery\f1
Inform the sender that the message was successfully delivered to the
\f2recipient\f1's mailbox.
.TP
\f4/nodelivery\f1
Do not inform the sender of successful deliveries.
.TP
\f4/ignore\f1
Do not inform the sender of \f4un\f1successful deliveries.
.TP
\f4/return\f1
Inform the sender if mail delivery fails.
Return the failed message to the sender.
.TP
\f4/report\f1
Same as \f4/return\f1 except that 
the original message is not returned.
.PP
The default is \f4/nodelivery/return\f1.
If contradictory options are used, the first will
be recognized and later, conflicting, terms will be ignored.
.SH FILES
.PD 0
.TP 20
\f4dead.letter\f1
unmailable text
.TP
\f4/etc/passwd\f1
to identify sender and locate recipients
.TP
\f4/etc/mail/mailsurr\f1
routing / name translation information 
.TP
\f4/etc/mail/mailcnfg\f1
initialization information
.TP
.SM
\f4$HOME\*S/mbox\f1
saved mail
.TP
.SM
\f4$MAIL\*S\f1
variable containing path name of
.I mailfile\^
.TP
\f4/tmp/ma\f1\(**
temporary file
.TP
\f4/tmp/MLDBG\f1\(**
debug trace file
.TP
\f4/var/mail/\f1\(**\f4.lock\f1
lock for mail directory
.TP
\f4/var/mail/:saved\f1
directory for holding temp files to prevent loss of data in the event of a
system crash.
.TP
\f4/var/mail/\f1\f2user\f1
incoming mail for \f2user\fP;
that is, the
.I mailfile\^
.PD
.SH SEE ALSO
\f4chmod\fP(1),
\f4login\fP(1),
\f4mailx\fP(1),
\f4notify\fP(1),
\f4write\fP(1),
\f4vacation\fP(1)
.sp .2
\f4mail_pipe\fP(1M),
\f4mailsurr\fP(4),
\f4mailcnfg\fP(4) in the \f2System Administrator's Reference Manual\f1.
.br
.IR "User\'s Guide" .
.SH NOTES
The "Forward to recipient" feature may result in a loop.
Local loops (messages sent to \f4usera\f1, which are forwarded to
\f4userb\f1, which are forwarded to \f4usera\f1) will be detected
immediately. Remote loops (mail sent to \f4sys1!usera\fP1 which is forwarded
to \f4sys2!userb\f1, which is forwarded to \f4sys1!usera\f1) will also be
detected, but only after the message has exceeded the built-in hop count
limit of 20. 
Both cases of forwarding loops will result in a non-delivery
notification being sent to the message originator.
.PP
As a security precaution, the equivalent of a \f4chmod s+g\f1 is performed on 
the \f2mailfile\fP whenever forwarding is activated via the \f4\-F\fP
option,
and a \f4chmod s\(mig\fP is done when forwarding is removed via the
\f4\-F\fP option.
If the set\s-1GID\s+1 mode bit is not set when \f4mail\fP
attempts to forward an incoming message to a command,
the operation will fail and a non-delivery report with appropriate
diagnostics will be sent to the message's originator.
.PP
The interpretation and resulting action taken because of the
header lines described in the Delivery Notifications section
above will only occur if this version of \f4mail\fP is installed
on the system where the delivery (or failure) happens.
Earlier versions of \f4mail\fP may not support any types
of delivery notification.
.PP
Conditions sometimes result
in a failure to remove a lock file.
.PP
After an interrupt, the next message may not be printed;
printing may be forced by typing a
\f4p\f1.
.Ee