|
|
1.1 root 1: .SH
2: The List Channel
3: .PP
4: The list channel was developed as the result of BRL's experience
5: in managing \fBlarge\fR Internet mailing lists.
6: Two major problems were discovered with dealing with mailing lists
7: in MMDFI. First, since \fBsubmit\fR always verifies all known addresses
8: for a message at submission time, if you were on the machine with
9: a large list and submitted mail to the list you would have to wait
10: for every address on that list to be verified.
11: On a busy machine
12: with a list of hundreds of addresses, this could take
13: five or ten minutes.
14: Annoying as this may be for people,
15: the situation was worse for mail submitted over communications
16: channels like TCP/IP. The remote end would continually time out
17: before the message had been completely verified so the message
18: could never be sent.
19: .PP
20: The second problem with large lists was that there were always
21: rejected mail notices going back to those
22: least able to do anything about the mail problem, the original
23: sender of the message. What was really desired was a method to
24: try to have returned mail go to the list maintainer instead
25: of the message's original sender.
26: .PP
27: The solution to both of the problems is embodied in the list channel.
28: This is a channel with an incestuous relationship
29: to \fBsubmit\fR, \fBdeliver\fR,
30: and the alias file.
31: Use of the list channel is best described in parallel with the
32: special entries for the list channel in the alias file.
33: If we were maintaining a large list called ``biglist'', the following
34: entries would be in the alias file:
35: .nf
36: .ta 2.6i
37: .sp .5
38: .in +.6i
39: biglist: biglist-outbound@list-processor
40: .br
41: biglist-outbound: </usr/mmdf/lists/biglist-file
42: .br
43: biglist-request: maintainer
44: .in -.6i
45: .fi
46: .sp .5
47: The pseudo-host ``list-processor'' has its own domain table and its
48: own host table but represents no actual host. If someone submits
49: mail to biglist, \fBsubmit\fR will find the alias entry and
50: upon finding that it's
51: not a local address, will queue it to the host ``list-processor'',
52: so verification is complete after only one lookup.
53: Unknown to
54: \fBdeliver\fR, the list channel simply calls \fBsubmit\fR and feeds it the
55: aliased addresses, ``biglist-outbound''.
56: This time the actual verification is done on the contents of
57: the address list ``biglist-file''. Since the list channel is processed
58: by a background daemon, no one is forced to wait through the
59: verification process except the background daemon itself, which doesn't care
60: how long it takes so long as it completes.
61: .PP
62: The list channel also performs another function to try to
63: eliminate the problem of failed mail messages.
64: For each address given to it, (normally just one), the list channel
65: sees if there is a matching ``\fIlistname\fR-request'' entry in the alias
66: table. It knows enough to try stripping any ``\-outbound''s from
67: the name first though. If a ``\-request'' entry is found, then
68: that address is substituted instead of the original return
69: address. The message text is \fInot\fR altered, but the new return address
70: is recorded for use when resending the message.
71: The new return address
72: is supplied in SMTP ``MAIL FROM:<\fIaddress\fR>'' commands and any other
73: situations where the return address is directly specifiable.
74: .PP
75: The changing of the return address is useful only if mail is rejected
76: when submitted to the foreign host or if that host is smart enough to keep
77: the return address information around. Many hosts do not maintain this
78: information,
79: and many of the same hosts are also problematic in that they
80: will completely accept a message containing total garbage and
81: decide to tell you about it later. This is precisely what MMDF tries
82: to avoid by submission-time verification.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.