Outcome of KLH/RMS/DLW conversation: After much thrashing around the various kinds of "from"s and their use, it was more or less agreed that the following 4 attributes should exist in the MAILRQ protocol: [1] FROM-UNAME: always UNAME of sending process (this name seems more specific than SENT-BY, if objections then sent-by is ok.) [2] FROM-XUNAME: always XUNAME of sending process [3] AUTHOR: guaranteed to be a valid recipient name representing author. Otherwise, tough beans - although Comsat can attempt to send error message to [1] or [2] if it finds that [3] is an illegal-type name. Header will show [1] as SENT-BY if different from [3]. [4] FAKE-FROM: Any line whatsoever which will simply be stuck in the header without examination. No SENT-BY or anything like that. We're not sure whether [2] is necessary, but it's there just in case it becomes useful. It was also agreed that all of 1, 2, and 3 should be mandatory, but [3](AUTHOR) is more mandatory than the others - without it, COMSAT will complain. If either [1] or [2] is missing they default to each other, if both missing then to [3]. FROM, CLAIMED-FROM, and any other "from"-type attributes are flushed due to their impreciseness and history of confusion. Time for a fresh start. $F in QMAIL will set AUTHOR; some other command will set FAKE-FROM in the same way as $N. Multiple authors should be provided for. The AUTHOR syntax should be identical to that of RCPT. Normally all sender options are IOR'd together; when there is a conflict, the option of the first author specified (principal author) takes precedence. The mailer's use of the fields: When generating the header "From:" field, if there was a FAKE-TO it will be used. Otherwise, the names of the AUTHORs will be used. When sending off error messages, the FROM-UNAME will be CLIed to; if it is necessary to send error-message mail then the AUTHORs will get it. The FROM-XUNAME is not used yet, but it seems like a good idea to have it around. other MAILRQ tweaks: RCPT-LIST-NAME becomes FAKE-TO. RCPT replaces TO. ============================================================================= COMSAT internals: [1] FROM-UNAME: A$FUNM - 6bit word value [2] FROM-XUNAME:A$FXUN - 6bit word value [3] AUTHOR: A$RNAM - string [4] FAKE-FROM: A$FFAK - string All authors will be in standard A$R format (hence author name is simply A$RNAM like a recipient) but instead of using A$RCP, each author will be tucked under an A$AUTH. A$FUNM will be created by default if not explicitly specified, as will A$FXUN if it ever wants to be found at other than A$FUNM-setting time; all 3 A$F's will be simple top-level message attributes. Current lossage: Only two items exist: A$SNM and A$CSN. A$SNM given by FROM, FROM-UNAME, SENT-BY. A$CSN given by AUTHOR, CLAIMED-FROM. If only A$CSN is furnished in a MAILRQ, it is turned into A$SNM. If NET-MAIL-FROM-HOST is seen, header is parsed to create A$SNM. (Bad parse results in A$SNM of NET-ORIGIN) Note A$SNH is associated with SNM only. PRTSUM two-line msg summary uses SNM, else nil. COMSAT-originated msgs set SNM = COMSAT. SNMEXP uses SNM else CSN (neither if SNH exists) SNMRCP uses CSN, else SNM. HDRINI: HDRFRM/ CSN else SNM HDRSBY/ SNM if CSN and CSN != SNM and SNM, else 0 RCPSND: dies if no SNM. The CLI-notify prevent (sending-to-sender) check checks both SNM and CSN. PGM-type rcpt job has XUNAME set to CSN, else SNM. LMSN20+x: Failed SEND which mails uses SNM else CSN to generate CSN for mailed msg.(no SNM!! Possible bug? Some places AUTPSY if no SNM!) Check above LMSN85 for QSENDing to "originator" only checks if rcpt == SNM. CLIOP3 dies if no SNM ("You have mail from "). Ditto CLIMSG ("TTY message from ").