Annotation of 43BSDReno/share/doc/ucs/mmdf/p6, revision 1.1.1.1

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.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.