|
|
1.1 ! root 1: .SH ! 2: The Local Channel ! 3: .PP ! 4: The local channel remained unchanged until late 1983, when ! 5: a major reworking of the channel was done by BRL. The old ! 6: local channel could handle delivery in three basic ways. ! 7: The first and most common was to deliver directly to the ! 8: user's default mailbox, appending the message to the end. ! 9: Second, the user could put a program in his ! 10: private bin directory ! 11: called ``rcvmail'' that would be called by the local channel ! 12: to handle delivery of the message. ! 13: If the user program (rcvmail) did not complete successfully, ! 14: a standard delivery was made instead. ! 15: .PP ! 16: In early versions of the local channel for MMDFII, Dave Crocker added ! 17: support for mailing to files and pipes, but the original version ! 18: had a number of security problems, ! 19: mostly due to \fBsubmit\fR, so the capability ! 20: was not much used. ! 21: .PP ! 22: The latest version of the local channel has kept ! 23: the alias-file-originated delivery to files ! 24: and pipes, and the changes Steve Kille ! 25: has made to the \fBsubmit\fR program have also made this facility reliable ! 26: from a security standpoint. ! 27: The rcvmail mechanism has been totally scrapped in favor of a ! 28: more general and powerful mechanism which I will call ! 29: ``mail delivery files''. ! 30: .PP ! 31: Mail delivery files were designed to give the user as much flexibility ! 32: over how his mail was delivered as possible without opening security holes. ! 33: The mail system was changed to allow local addresses to have a ! 34: suffix appended which consists of an `=' and any simple text; ! 35: this suffix is totally ignored except when using mail delivery files. ! 36: Each user may create a ``.maildelivery'' file in his home ! 37: directory which contains one or more delivery specifications. ! 38: A delivery specification has five parts, separated by field separators, ! 39: \fI<FS>\fR, which may be tabs, spaces or commas ``,''. ! 40: .sp .5 ! 41: .ti .6i ! 42: \fIfield\ \ <FS>\ \ pattern\ \ <FS>\ \ action\ \ <FS>\ \ A/R/\?\fR\ \ <FS>\ \ ``\fIoptional string\fR'' ! 43: .sp .5 ! 44: The \fIfield\fR is the name of a field that is to be searched for a pattern. ! 45: Currently supported fields are \fIFrom\fR, \fITo\fR, \fISubject\fR, ! 46: \fISender\R, and \fICc\fR, plus three special fields, \fIaddr\fR, \fI*\fR, ! 47: and \fI*\fR. ! 48: The \fIaddr\fR field is used to match against the address being delivered to ! 49: \fIincluding\fR the suffix (e.g. ``dpk=unixwizards''). ! 50: If the user subscribes to different lists with different suffixes ! 51: he can use his mail delivery file to segregate his mail by source. ! 52: To do this based on the message text alone is impossible to ! 53: do right 100% of the time. ! 54: The \fIdefault\fR field matches if the message has not been delivered ! 55: by any of the preceding lines in the ``.maildelivery'' file. ! 56: The \fI*\fR field always matches, regardless of any other action. ! 57: .PP ! 58: The \fIpattern\fR is some sequence of characters that may be matched ! 59: in the \fIfield\R. Case is not significant, and multiple fields of the same ! 60: name are concatenated, separated by spaces. If the field does not need as ! 61: pattern, a dash (-) or similar symbol is usually inserted to show that the ! 62: field is present but not used. ! 63: .PP ! 64: The \fIaction\fR is ``file'' or ``>'', ``pipe'' or ``|'', or ``destroy''. ! 65: ``File'' or ``>'' appends the message in standard mailbox format to the ! 66: file specified in the optional string. ! 67: ``Pipe'' or ``|'' causes the ! 68: program in the optional string to be run with the message available on ! 69: the standard input. ! 70: ``Destroy'' causes the mail to be thrown ! 71: away silently. This is useful if you go away on a long trip and don't ! 72: want to unsubscribe to lists, but also don't want to come home to ! 73: several thousand messages. ! 74: .PP ! 75: The \fIA/R/?\fR flag is a single character: `A' for accept, `R' for reject, ! 76: or `?' for accept if not delivered yet. This flag indicates whether the action, ! 77: if successful, is sufficient to mark the message as delivered. ! 78: If the message is undelivered at the end of the .maildelivery file, ! 79: the local channel next consults a system-wide file, such as ! 80: \fI/usr/lib/maildevliery\fR. If the message is still undelivered at the end of ! 81: the system-wide file, a standard delivery is made to the default mailbox. ! 82: This protects against ! 83: mail being lost due to lack of foresight or errors in the maildelivery files. ! 84: .PP ! 85: The file is always read completely so that several matches ! 86: can be made, and several actions taken. ! 87: For example, the user could have a TTY alert ! 88: message sent to his terminal and also have the message resent to his new ! 89: home machine by the following .maildelivery file: ! 90: .sp .5 ! 91: .in +.6i ! 92: addr\ \ \ \ dpk\ \ \ \ pipe\ \ \ R\ \ ``/usr/mmdf/mailutils/ttyalert'' ! 93: .br ! 94: addr\ \ \ \ dpk\ \ \ \ pipe\ \ \ A\ \ ``/usr/brl/bin/resend [email protected]'' ! 95: .in -.6i ! 96: .sp .5 ! 97: The last line, if completed without error (a return code of 0 from resend), ! 98: would mark the message as delivered because of the A (accept) flag in the ! 99: fourthcolumn.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.