|
|
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.