PMDF System Manager's Guide


Previous Contents Index

18.1.1 Conversion of VMS To: addresses to PMDF Format

The first step in converting a VMS To: style addess to PMDF's format is to remove the foreign protocol "wrapper" from addresses of the form IN%"address" and then apply the translations of Table 18-1. The foreign protocol wrapper is usually, but not always, IN%" ".

Table 18-1 Foreign Protocol Address Mapping
Sequence Is translated to  
' " (double quote)
\' ' (single quote)
\d " (double quote)
\s ' (single quote)
\D " (double quote)
\S ' (single quote)
\\ \ (backslash)
These translations are necessary in order to allow users to specify double quotes inside an address even though they are not normally allowed inside a VMS MAIL address. Preferred usage when entering addresses manually is to substitute single quotes for double quotes and \' for single quotes. For example:


IN%"'tony li'@hmc.edu"   maps to  "tony li"@hmc.edu 
IN%"\'tonyli\'@hmc.edu"  maps to  'tonyli'@hmc.edu 

The next step is to apply any protocol-address-specific mapping that has been supplied. PMDF checks the mapping file to see if a mapping table named PROTOCOL-TO-PMDF exists. If this table exists, it is applied separately to each address inside of the foreign protocol wrapper. Specifically, a probe string of the form (note the use of the vertical bar character, |)


channelname|protocolname|address
is built. Here channelname is the name of the PMDF channel associated with the incoming mail. This will be d if network mail is being received and a d channel exists; otherwise it will be l. protocolname is the name of the foreign protocol used including the percent sign; this is usually, but not always, IN%. And address is simply the address being converted.

If a mapping entry matches the probe string, the result of the application of the mapping replaces the original addresses. If no entry matches the address is not changed in any way.

The availability of the actual protocol name used makes it possible for PMDF to handle multiple protocol names and associate different syntax rules with each one. (Of course, this is only possible if the necessary syntax modifications can be expressed in the mapping table.) For example, suppose you want to define a new foreign protocol REVERSE% that accepts addresses of the form user@domain, but the elements in domain are reversed. That is, instead of writing IN%"user@ymir.example.com" you would write IN%"user@com.example.ymir". The following mapping would accomplish this for all domain specifications of six parts or less:


PROTOCOL-TO-PMDF 
 
  *|REVERSE$%|%*@%*.*.*.*.*.*  $1$2@$9.$8.$7.$6.$5.$3$4 
  *|REVERSE$%|%*@%*.*.*.*.*    $1$2@$8.$7.$6.$5.$3$4 
  *|REVERSE$%|%*@%*.*.*.*      $1$2@$7.$6.$5.$3$4 
  *|REVERSE$%|%*@%*.*.*        $1$2@$6.$5.$3$4 
  *|REVERSE$%|%*@%*.*          $1$2@$5.$3$4 
  *|REVERSE$%|%*@%*            $1$2@$3$4 

This more complex iterative mapping will reverse domain specifications containing eight or fewer parts:


PROTOCOL-TO-PMDF 
 
  *|REVERSE$%|%*@%*.*          $R{REVERSE}$1$2|$5.|$3$4 
  *|REVERSE$%|%*@%*            $1$2@$3$4 
  {REVERSE}*|*|%*.%*           $R{REVERSE}$0|$1$4$5.|$2$3 
  {REVERSE}*|*|*               $0@$1$2 

It would also be necessary to define a logical name for the new REVERSE% protocol:


$ DEFINE/SYSTEM/EXEC MAIL$PROTOCOL_REVERSE PMDF_SHARE_LIBRARY

The final step in converting a VMS To: address to PMDF's format is to convert DECnet-style addresses into RFC 822 addresses. Specifically, addresses of the form IN%system::user are converted into RFC 822 addresses of the form USER@SYSTEM. Multiple routing systems can be specified; the result will be a "percent-style" address, e.g., IN%sys1::sys2::user will be converted to USER%SYS2@SYS1. The forced conversion of such addresses to upper case is performed by VMS MAIL and is unavoidable. Double quotes can be used to eliminate the conversion to upper case; they also make it possible to specify more than one address inside a single foreign protocol wrapper.


Previous Next Contents Index