From: CSBVAX::MRGATE!RELAY-INFO-VAX@CRVAX.SRI.COM@SMTP 2-NOV-1988 17:50 To: ARISIA::EVERHART Subj: Re: VMS 5.0 Mail - Specifically the Mail-11 Protocol Received: From KL.SRI.COM by CRVAX.SRI.COM with TCP; Tue, 1 NOV 88 23:24:04 PDT Received: from hac2arpa.hac.com by KL.SRI.COM with TCP; Tue, 1 Nov 88 22:52:23 PST Received: from ENGVAX.SCG.HAC.COM by hac2arpa.hac.com (3.2/SMI-DDN) id AA00749; Tue, 1 Nov 88 22:22:21 PST Message-Id: <8811020622.AA00749@hac2arpa.hac.com> Date: Tue, 1 Nov 88 22:18 PST From: "Michael N. Kimura" Subject: Re: VMS 5.0 Mail - Specifically the Mail-11 Protocol To: info-vax@kl.sri.COM X-Vms-To: ENGVAX::IN%"info-vax@kl.sri.com",MNK In article <88918114841.20401c2f.DSTEVENS>, DSTEVENS@VAXC.STEVENS-TECH.EDU (David L. Stevens) writes: > We have a local mailer here that we wrote to send mail from our VAX/VMS >system to remote systems via Decnet, Bitnet, CMU-TCP (yes I know PMDF does all >this, we did not like it when we started this project. NO flames on our >choice please). I already know how to handle the MAIL-11 Protocol under >version 4.x, but now that V5.0 Mail includes a CC: line I need to know what >the current V5.x Mail-11 Protocol is. Here's what I've been able to figure out from the VAX/VMS Version 4.4 micro-fiche about how VMS MAIL uses DECnet and the Mail-11 Protocol. Mike Kimura ---------------------------------------------------------------------------- Michael Kimura Internet: mnk%draco@hac2arpa.hac.com Hughes Aircraft Company (RSG) BITnet: mnk@draco.hac.com P.O. Box 92426 MS: R2/A159 EDEN: draco::mnk Los Angeles, CA 90009 Telephone: (213) 615-9775 ---------------------------------------------------------------------------- ************************ Mail-11 Protocol ************************** When delivering mail via DECnet using Mail-11 protocol, VMS MAIL uses non-transparent task-to-task communication which enables MAIL to send and receive a NCB (Network Connect Block) from the remote server. MAIL puts configuration data in the NCB to tell the server what operations and modes it would like to use. The server must send back a modified NCB to indicate what operations and modes it is capable of performing. VMS MAIL assigns a channel with a mailbox to "_NET:" and issues a $QIO(IO$_ACCESS) to the remote node using a NCB in the following format: node::"MAIL=/<0 pad>" is a word of 0's is the length of the configuration data is the configuration data <0 pad> padded to 17 bytes (including byte count) the remote server translates the logical name "SYS$NET" to read the NCB, the NCB will look similar to: node::"0=/<2 byte link#>" it assigns a channel with a mailbox to "_NET:" and sends back a modified NCB indicating which operations requested can be processed by the server (this NCB is sent back using $QIO(IO$_ACCESS) and will be read by the requestor in it's mailbox). The configuration data looks like the following for VMS MAIL 4.4 /*+ /*Configuration data passed/read from remote node /*- cnf_b_version /*Mail-11 protocol version cnf_c_vers = 3 cnf_b_eco /*Mail-11 protocol ECO level cnf_c_eco = 0 cnf_b_custeco /*Mail-11 protocol Customer ECO cnf_b_os /*Operating system number cnf_c_vaxvms = 7 cnf_l_options /*Send "receiving user notified msgs" cnf_l_iomode /*Message send/receive mode cnf_v_blksend /* Sender wants to send in block mode cnf_v_blkrecv /* Receiver will accept block mode cnf_v_pfxsend /* Sender wants to add node name cnf_v_pfxrecv /* Receiver will let sender do it cnf_v_ccsend /* Sender wants to send CC field cnf_v_ccrecv /* Receiver will accept CC field cnf_b_rfm /*Message record format cnf_b_rat /*Message record attributes cnf_b_spare1 /*Spare byte cnf_b_spare2 /*Spare byte cnf_c_length = 16 /*Length of above cnf_ structure For VAX/VMS Version 5.x, VMS MAIL sets cnf_c_eco to 1, and it will set the bit cnf_v_ccsend in cnf_l_iomode to indicate that it wants to send the CC field. A VAX/VMS Version 4.4 VMS MAIL server will gladly receive the CC field and will set the cnf_v_ccrecv bit on to indicate so. The support for CC lines was already built into the VMS MAIL as of VAX/VMS Version 4.4 (possibly before) which you can see for yourself by sending a message from a 5.x node to a 4.x node and specifying a CC. The "CC:" line will show up on the message on the 4.x node. The "CC:" line is transmitted after the "To:" line but _ONLY_ if the server has sent a NCB back to the requester using non-transparent task-to-task communication that indicates the server can handle a "CC:" line. If you use transparent task-to-task communication, an empty NCB will be transmitted back and the requester will not send the "CC:" line. VMS MAIL will use block mode if you send a file but _ONLY_ if the server is using non-transparent task-to-task communication since it requires the NCB to have the cnf_v_blkrecv bit set to indicate that the server can use block mode. Therefore, a full function Mail-11 protocol mailer _MUST_ use non-transparent task-to-task communication. Using transparent task-to-task operation by simply using an RMS open on "::MAIL=" (requestor) or SYS$NET (server) will result in a mailer that can not use block mode and that can not send/receive the CC field. This information was determined from the VAX/VMS V4.4 micro-fiche.