Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!agate!labrea!csli!gandalf From: gandalf@csli.STANFORD.EDU (Juergen Wagner) Newsgroups: comp.mail.sendmail Subject: Re: (IPC) Mailer rulesets (How do they really work?) Message-ID: <7424@csli.STANFORD.EDU> Date: 4 Feb 89 07:23:46 GMT References: Reply-To: gandalf@csli.stanford.edu (Juergen Wagner) Organization: Center for the Study of Language and Information, Stanford U. Lines: 55 The pre-defined role of rulesets is as follows: 0 determine mailer for delivery. returns: 1 sender rewriting 2 recipient rewriting 3 canonicalization 4 externalization with IDA, one has separate envelope/header rewriting, i.e. 5 sender rewriting (headers, #1 is for envelope in such systems) 6 recipient rewriting (headers, #2 is for envelopes). Now, what happens when you ask sendmail to deliver a mesage is roughly the following: recipient -> canonicalize -> find_mailer -> $# mailer $@ host $: mailbox #3 #0 | +--> #2 (or #6) -> recipient' The mailbox is transformed as mailbox -> recipient rw. -> mailer-specific -> externalize -> mailbox' #2 rewriting rule #4 Mail is then delivered to |mailbox'| on |host|, using |mailer| (and also its interpretation of |host| and |mailbox|). The To: header field will contain |recipient'|. Similar transformations are done with the sender field but there is no call to ruleset #0: sender -> canon. -> sender rw. -> mailer-specific -> externalize -> sender' | rewriting rule | +--> sender rw. (#1 or #5) -> sender" Now, what you will see is: Message Header - From: sender" To: recipient' Message Envelope - RCPT To: mailbox' MAIL From: sender' while talking SMTP to "host". Of course, with other mailers, the dialogue looks a little different, but basically the envelope/header structure remains the same. [I hope I've got all these arrows right.] -- Juergen Wagner gandalf@csli.stanford.edu wagner@arisia.xerox.com