POPtoMAIL version 3.7 System Manager's Manual Table of Contents 1 GENERAL INFORMATION 1 1.1 CAPABILITIES 1 1.2 SUPPORT 1 1.3 DISCLAIMER 1 1.4 LICENSING 1 Vaxination Informatique September 2005 2 RELEASE INFORMATION 3 KNOWN BUGS / RESTRICTIONS 4 INSTALLATION INSTRUCTIONS 4.1 Create Username 4.2 Unpack 4.3 Run INSTALL.COM 4.4 Configure software 4.5 Startup procedure 5 CONFIGURATION INSTRUCTIONS 5.1 APPLICATION STARTUP 5.2 @POPTOMAIL$CONFIG : 5.3 @ROUTING$EDIT: 6 OPERATIONS APPENDIX I Sample UAF En 11 APPENDIX II LOG FI 12 APPENDIX III Routing Database File for 13 APPENDIX IV Sample Installation proced 14 1 GENERAL INFORMATION The POPTOMAIL software consists of a background process which, at regular intervals, retrieves messages from a list of remote pop mailboxes and delivers them to designated VMSmail mailboxes. 1.1 CAPABILITIES  Can process any number of remote POP mailboxes each being delivered to a specific VMSmail destination.  Runs in background as detached process. Image restarts after a failure to ensure service remain available  Transaction log file flushed every minute, so up-to-date results are available.  Messages with a QUOTED-PRINTABLE content transfer encoding are decoded by the software and are thus readable from within VMSmail. Attachements are not converted.  RFC822 Headers can be placed on top, bottom or omitted on a per user basis.  Scans RFC822 headers of POP messages to build a replyable email address including adding a configurable transport string. 1.2 SUPPORT This software is provided as-is with no warrantee. However, bug reports and request for features/improvements can be forwarded to jfmezei@vaxination.ca 1.3 DISCLAIMER This software is furnished as-is at no cost to users. No warrantee implied or otherwise is given and Vaxination informatique is not liable for any damages which may result from installing using or modifying this software. 1.4 LICENSING Vaxination Informatique grants the user the right to use and modify the software. However, it retains original copyright. Reselling/repackaing the software for distribution on a commercial basis is not permitted without prior explicit permission. 2 RELEASE INFORMATION GENERAL INFORMATION 1  Version 3.7 is the first productised version and contains code that has been in production for a long time. No changes were made to the C code.  Various command procedures were updated and/or created to make this a standalone product.  Documentation and installation procedure were created  A Pop mailbox database editor was written in DCL to replace the ALL-IN-1 forms that had been in use allowing basic creation and editing of the indexed file containing the list of POP mailboxes to scan. 3 KNOWN BUGS / RESTRICTIONS  The application sometime crashes if it is unable to connect to pop servers after a number of times. The command procedures informs the application owner, and the application automatically restarts after a delay of 10 minutes.  The TCProutines provide a record-like access to incoming data. However, certain spam messages are ill formed and do not follow the cr-lf standard, and as a result, the application in unable to parse the header properly, and emails will therefore have null "from" and "subject.  The TCProutines.C code uses the $QIO interface to the TCPIP link. It assigns a channel to the default template device TCPIP$DEVICE, as recommended for the Digital TCPIP Services stack. If you use a different stack, you may need to define the logical TCPIP$DEVICE , or edit the TCroutines.C file and look at the tcpip_open routine.  The application will convert simple quoted-printable contents to readable text. However, quoted printable attachements are not converted.  Certain Microsoft originated messages containing raw binary data (unencoded) will not be usable because cr and/or lf combinations will have been converted into variable length record delimiters, and upon extracting the text from the RELEASE INFORMATION 2 VMSmail message, the cr-lf combinations generated by RMS may not represent the original sequences.  The routing database contains unencrypted clear text passwords to user's pop mailboxes. Future releases may include two-way encryption for this field. Properly securing the file is therefore critical.  The authentication to the remote pop server is in clear text with USER and PASS commands. Encrypted password exchange is not yet implemented.  The software has an internal activity check. After a certain time has elapsed without any IO activity, the software will abort (and restart later). This is to prevent the software from permanently jamming with some stuck IO or dropped link.  Temporary files are created with a timestamp. On slow machines, it is not an issue since the creation of multiple temporary files in a short time period will still result in different filenames. It is unknown how this will behave on faster machines. However, for mailboxes where headers are placed at the top, only one temporary file is needed per message, so this should not be an issue. This issue will be fixed in the next release. 4 INSTALLATION INSTRUCTIONS 4.1 Create Username Prior to proceeding with installation, a VMS username needs to be created to host the software. Refer to Appendix I for more information on username characteristics. You must also create the user's SYS$LOGIN directory and set protections so that the user has full access to that directory. You *may* use an existing username, but consider any potential conflicts. 4.2 Unpack The software is distributed as a single .ZIP file. Unzip the file into a temporary directory. You'll see a few files, including a collection of BACKUP savesets, INSTALL.COM and some documentation. KNOWN BUGS / RESTRICTIONS 3 4.3 Run INSTALL.COM You can execute the @INSTALL.COM procedure. This procedure will prompt you for the application username, the directory specification where the application will reside, and will then compile and/or link the application. A sample installation procedure is contained in 4.4 Configure software Consult the chapter on software configuration in the documentation. There are two aspect to this. General application configuration as well as building the database of pop mailboxes you wish this software to process. 4.5 Startup procedure The system startup procedure needs to execute the following: @disk:[dir]POPTOMAIL_STARTUP You can submit this to run in a batch job, under the SYSTEM or other very privileged account. Please note that since this software makes use of TCPIP connectivity, you should ensure that your TCPIP stack is sufficiently up at the time this procedure executes. Consult Section 5.1 APPLICATION STARTUP for more information. 5 CONFIGURATION INSTRUCTIONS 5.1 APPLICATION STARTUP POPTOMAIL_STARTUP.COM in the application's base directory is the file used to start the application. It optionally takes 2 parameters: P1: Configuration file, defaults to POPTOMAIL_PARAMS.COM in the same directory as the POPTOMAIL_STARTUP.COM procedure. P2: server number. This is not currently used in this version. In the future, it may be used to allow INSTALLATION INSTRUCTIONS 4 multiple instances to run in a cluster. This procedure installs the image, creates the logical name table and submits POPTOMAIL_START.COM to execute under the application's username. POPTOMAIL_START then creates the detached process which runs POPTOMAIL.COM. @POPTOMAIL_STARTUP.COM must be run from a privileged account (aka: SYSTEM). You should include this in your systartup_VMS.com file or with sysman, with consideration that it should execute once your TCPIP stack is sufficiently up. Note: While POPTOMAIL_STARTUP.COM supports multiple configuration files, POPTOMAIL$CONFIG assumes POPTOMAIL_PARAMS.COM and does not support the editing of different configuration files at this time. After installing and configuring the software, you can test start it by typing @POPTOMAILI_STARTUP from the dollar sign. You should then consult the SYS$LOGIN directory of the application's username to look at the files POPTOMAIL_START.LOG and POPTOMAIL.LOG, the later being the more relevant one. CONFIGURATION INSTRUCTIONS 5 5.2 @POPTOMAIL$CONFIG : This procedure configures the software' major parameters. The information is stored in a command procedure (POPTOMAIL_PARAMS.COM). It executes this procedure to set symbols and logicals, and once changes are complete, it uses TPU and a template file ( POPTOMAIL_PARAMS.TEMPLATE) to recreate POPTOMAIL_PARAMS.COM. -------------------------POP TO MAIL Configuration Menu------------------------- 1 - Software directory ===> APPL:[POPTOMAIL.037] 2 - Software log file ===> POPTOMAIL_TRANS.LOG 3 - Postmaster ===> JFMEZEI 4 - Server username ===> CHOCOLATE 5 - Scan interval ===> 0 00:15:00 6 - Headers ===> T [Top] 7 - Delete messages ===> Y [Yes] 8 - Return transport ===> smtp% 9 - Max messages/user ===> 20 A - Startup queue ===> SYS$BATCH B - Routing database ===> POPTOMAIL_DIR:SMTP_ROUTING.DATA H - Hide, boss is coming T - Create defaults S - Save configuration R - Revert to saved  Software directory Defines where the main software components reside  Software Log File Defines where translation logs are written. This log file is flushed every minute and contains relevant data about messages that have been transfered.  Postmaster The postmaster is a VMSmail user who received email about software problems, crashes etc.  Server Username The server username is the VMS username under which the application runs. Refer to Appendix I for more details.  Scan Interval Interval between scans of user mailboxes. It is a sleep time after it has finished scanning all configured mailboxes in the routing database. This is entered as delta time. CONFIGURATION INSTRUCTIONS 6 Q - Quit  Headers Default value of where to place headers (Top, Bottom or None). This value is overriden by non-blank user settings in each routing record.  Delete Messages Flag to determine if the software should delete messages from the user's pop mailboxs after they have been retrieved. Use with caution. A value of "N" overrides all individual user routing record settings. (use for debugging software to ensure that user messages stay in a pop server for instance).  Return Transport String to add before the email address of a message's originator. (For instance, smtp%). This allows the message to be replyable from vms-mail.  Max Messages per User Determines how many messages the server will process in one pop mailbox before moving on to the next configured pop mailbox. This is to prevent one mailbox with 10,000 messages from monopolising the sofware and preventing the software from processing messages for other users. Any unprocessed messages get picked up when the softtware next scans the mailbox after the scan interval delay.  Startup Queue batch queue which executes the startup job. (see information on operations)  Routing Database File specification pointing to the file containing the list of pop mailboxes to process and to whom messages are to be delivered via VMSmail. CONFIGURATION INSTRUCTIONS 7 5.3 @ROUTING$EDIT: This is a DCL driven indexed file editor to populate and maintain the routing database which maintains the list of remote pop mailboxes to scan as well as VMSmail destination to which messages are sent. There is no limit on how many records can be present in the file. However, the DCL editor will list all records in one shot without any pause. It is meant to be used for small list of users. For greater scalability, a FMS form usable from ALL-IN-1 is provided in the source directory. --This-procedure-can-bePusedMwhileothensoftwaresis running. editor---------------------- popkey => FIDO popserver => pop.fido.ca popuser => wolfie poppassword => milkbone smtpfrom => vmsident => vmsroute => node::mydog popdelete => Y popheader => T flag => I  Popkey This is a system manager provided unique key. (uppercased). The software processes records in ascending order for that key. The key is also used to access individual records for update.  Popserver This is the fully qualified host name of the pop server to connect to. Port 110 is assumed.  Popuser This is the username for the mailbox on the popserver  Poppassword The is the password associated with the POPUSER.  smtpfrom & vmsident These fields are not used by this version of the software. They are meant for outbound message processing to associate an internet address based on the message router identity CONFIGURATION INSTRUCTIONS 8 xerrors => 0000 of the sender. If you fill VMSident, it must be a unique value, otherwise leave blank  VMSroute The is the VMSmail destination which is to receive the messages picked up from this pop mailbox. This can be any valid VMSmail destination, including foreign mail and decnet mail. Please note that with DECNET mail, certain messages may be truncated because DECNET mail does not accept records longer than 256 bytes, and once quoted-printable decoding has been done, Microsoft paragraphs are often longer than 256 bytes.  Popdelete This flag (Y or N) indicates whether the software should delete messages from the remote pop mailbox after they have been retrieved. Use with caution. Not deleting messages may result in messages being processed over and over. If this flag is set to blank, the value is taken from the software configuration. If the software configuration is set to "N", it overrides the value in the user's record. The simple DCL editor does not allow you to set a blank value.  Popheader This flag determines how the RFC822 header are placed in the VMSmail message (Top, Bottom or None.) A blank value results in the software using the software's configuration setting. The simple DCL editor does not allow you to set a blank value.  Flag This byte can be any value. However, if ist value is set to "I" (uppercase i), the software will ignore this record and skip over it. This is to allow one to temporarily disable processing of a record while making it easy to restore processing later on.  Errors This field is not used by this software. However, it must be a valid number. It is meant to store the number of consecutive errors while processing this user and automatically disable it after having notified the postmaster. 6 OPERATIONS CONFIGURATION INSTRUCTIONS 9 The software generally doesn't require much maintenance or handholding. The POPTOMAIL image creates a control mailbox (MBA device) that can be used to send control messages to it. You must not only have read access to the command procedures, but also to the POPTOMAIL logical name table in order to use those procedures.  @POPTOMAIL_TRIGGER This command procedure sends a control message to the application to cause it to wakeup and start a processing scan of all configured mailboxes. You can use this if you have a lengthy scanning interval and want to pickup messages you know have just been delivered  @POPTOMAIL_SHUTDOWN [ SHUTDOWN or RESTART ] This procedure sends one of two control messages to the application. If no parameter is supplied, SHUTDOWN is assumed. A shutdown request does just that. A RESTART request causes the image to exit with a specific status code causing the DCL code to reread the configuration file and restart the image. If the image exits with an unknown error code, the DCL waits 10 minutes and then restarts the software. A RESTART operation causes a new version of POPTOMAIL_TRANS.LOG file to be created. But the process' sys$output continues to be written to the same POPTOMAIL.LOG file.  DISABLING A MAILBOX You can temporarily disable the processing of a remote pop mailbox by using the @ROUTING$EDIT routine to set the flag of the record to "I" (eye). To re-instate processing, set the flag to another value. This preserves all other information in the record. OPERATIONS 10 APPENDIX I Sample UAF Entry Here is a sample UAF entry: Username: CHOCOLATE Owner: Message Router Account: KITCHEN UIC: [17,10] ([CHOCOLATE]) CLI: DCL Tables: DCLTABLES Default: CHOCOLATE:[LOG] LGICMD: LOGIN ... Maxjobs: 0 Fillm: 150 Bytlm: 100000 Maxacctjobs: 0 Shrfillm: 0 Pbytlm: 0 Maxdetach: 0 BIOlm: 100 JTquota: 1024 Prclm: 10 DIOlm: 50 WSdef: 600 Prio: 4 ASTlm: 100 WSquo: 16000 Queprio: 0 TQElm: 50 WSextent: 3000 CPU: (none) Enqlm: 300 Pgflquo: 20000 Authorized Privileges: NETMBX TMPMBX Default Privileges: NETMBX TMPMBX The Default directory is used for log files as well as temporary files while processing mail. It is recommended that this directory be different from the directories containing the actual software. The username need not be granted any elevated privileges. However, the POPTOMAIL.EXE image is installed with SYSPRV and SYSNAM. These two privileges are required to send emails on behalf of another user (the originator of the email message instead of the application's username), as well as setting certain logical names outside its process logical name table. The POPTOMAIL.EXE image accesses the routing database as well as transaction log files via logical names created in DCL prior to image invocation. The other files the image accesses are temporary files containing messages and message headers. Those files are created with a nomenclature of yyyymmddhhmmssmm.TMP with no directory specification and are this created in the application user's SYS$LOGIN. Therefore the presence of SYSPRV is of low risk since the application doesn't know how to create files outside its SYS$LOGIN, and file names are not dependant on message contents. Sample UAF Entry 11 The Username requires BATCH access for startup. From that batch process, a detached process is created. (Not sure which UAF access parameter is applicable). APPENDIX II LOG FILES There are 2 log files of value created by the software. Others, such as POPTOMAIL_START.LOG are just the output from the batch file which creates the detached process.  POPTOMAIL.LOG This is the SYS$OUTPUT of the image as well as the DCL surrounding it. This file contain information about when the software was started, the dump of the image, and subsequent automatic restart of the software. $ type poptomail.log $ Set NoOn $SET NOVERIFY POPTOMAIL starting at :19-JUL-2005 14:48:42.30 Running under username : GATEWAY Server info : POPTOMAIL" Process name : POPtoMAIL" ------------------------------------------------------- (POPTOMAIL) "POPTOMAIL_CONFIG" = "$DISK2:[GATEWAY.POPTOMAIL]POPTOMAIL_PARAMS.COM;" "POPTOMAIL_DIR" = "GATEWAY:[POPTOMAIL]" ------------------------------------------------------------------ starting at 19-JUL-2005 14:48:42.69 Configuration from : $DISK2:[GATEWAY.POPTOMAIL]POPTOMAIL_PARAMS.COM;22 created: 25-SEP-2003 04:35:01.56 (here, it would loop back to the "starting at" after a failure)  POPTOMAIL_TRANS.LOG This is the transaction log file generated by the application. It contains relevant information about every message that has been processed as well as any error messages. I-19-JUL-2005 14:48:45.10 Log file opened = POP TO MAIL Version 3.7 S-19-JUL-2005 14:48:46.54 connected=>pop.fido.ca (256.39.892.132:110) I-19-JUL-2005 14:48:46.64 +OK mail.fido.com Canine Mail Server v1.0 POP3 F-19-JUL-2005 14:48:46.76 +OK wolfie F-19-JUL-2005 14:48:46.99 +OK 6 messages 46005 octets I-19-JUL-2005 14:48:47.11 +OK 6 46005 I-19-JUL-2005 14:48:47.18 user: wolfie has 006 messages LOG FILES 12 I-19-JUL-2005 14:48:47.25 Retreiving message 1 I-19-JUL-2005 14:48:48.10 Sun, 17 Jul 2005 20:22:24 GMT I-19-JUL-2005 14:48:48.19 Subject: Your account will be suspended I-19-JUL-2005 14:48:48.26 From: "confirm@paypal.com" S-19-JUL-2005 14:48:50.07 Delivered to JFMEZEI I-19-JUL-2005 14:48:50.21 Deleting message 1 -19-JUL-2005 14:48:50.51 I-19-JUL-2005 14:48:50.59 Retreiving message 2 I-19-JUL-2005 14:48:51.01 From: "Jennifer" I-19-JUL-2005 14:48:51.10 Subject: Make Your Website More Profita I-19-JUL-2005 14:48:51.18 Mon, 18 Jul 2005 02:51:07 -0500 S-19-JUL-2005 14:48:52.49 Delivered to JFMEZEI I-19-JUL-2005 14:48:52.89 Deleting message 2 etc Routing Database File format 13 APPENDIX III Routing Database File format The SMTP_ROUTING.DATA file is an indexed file with 2 keys: POPKEY is the primary key. Duplicates not allowed. Characters should all be uppercase. VMSIDENT is a secondary key, duplicates not allowed, but empty contents allowed. This key is not used in this version of the product. It is used to retrieve the record based on the sender of an outgoing message. 01 SMTP_ROUTING. 05 POPKEY PIC X(35). 05 POPSERVER PIC X(60). 05 POPUSER PIC X(35). 05 POPPASSWORD PIC X(35). 05 SMTPFROM PIC X(60). 05 VMSIDENT PIC X(60). 05 VMSROUTE PIC X(60). 05 POPDELETE PIC X(1). 05 POPHEADER PIC X(1). 05 POPTEMP PIC X(1). 05 ERRORS PIC X(4). There are a few support files provided: SMTP_ROUTING.FDL the FDL file to create a new routing database file. [.DOC]SMTP_ROUTING.TXT the field definitions (as above) [.SOURCE]SMTP_ROUTING.FRM is the FMS form which maps fields with ALLIN1 named data to allow ALLIN1 to Sample Installation procedure 14 map this to the indexed file. You would need to update the named data to have it point to the right location of the file. Sample Installation procedure 15 APPENDIX IV Sample Installation ********** Unpacking procedure documentation %BACKUP-S-CREDIR, created $ @INSTALL.COM directory $2$DKA200:[POPTOMAIL.DOC] ----------------------------------------------------------------------- POPtoMAIL 3.7 Installation for $2$DKA200:[POPTOMAIL.DOC]POPTOMAIL_S VAX starting at 16-SEP-2005 %BACKUP-S-CREATED, created 03:05:47.84 $2$DKA200:[POPTOMAIL.DOC]SMTP_ROUTIN ------------------------------------------------------------------------ You need to designate a ********** Unpacking source specific VMS username under which %BACKUP-S-CREDIR, created the directory application will run and $2$DKA200:[POPTOMAIL.SOURCE] wish will own the files. %BACKUP-S-CREATED, created Consult the system manager's <...> manual for details on the UAF ********** Unpacking pre-compiled characteristics for that objects for VAX username %BACKUP-S-CREATED, created $2$DKA200:[POPTOMAIL.SOURCE]POPDOMSG If the designated username %BACKUP-S-CREATED, created has not been created, press $2$DKA200:[POPTOMAIL.SOURCE]POPTOARG %BACKUP-S-CREATED, created now and restart this $2$DKA200:[POPTOMAIL.SOURCE]POPTOMAI procedure later. %BACKUP-S-CREATED, created $2$DKA200:[POPTOMAIL.SOURCE]UTILITIE Server username:JFMEZEI ------------------------------------ This installation procedure Creating default routing database will unpack savesets in the file %FDL-I-CREATED, following structure: $2$DKA200:[POPTOMAIL]SMTP_ROUTING.DA [main] created +----+-----+ | | Now setting protection and [SOURCE] [DOC] ownership of files SET You need to provide a directory FILE/PROT=(w,g,o:rwed)/owner=JFMEZEI specification below to specify You may wish to delete temporary [main] kit files in DKA200:[JFMEZEI.TEMP] after Enter target directory [ SYS$SYSDEVICE:[POPTOMAIL] ] :$DISK4:[poptomail]------------------------- You now have the option to Will place the software in compile/link the application $DISK4:[POPTOMAIL] Do you wish to build the Files will be owned by user: application ? [Y/N] Y JFMEZEI Aplication build phase POPTOMAIL ********** Unpacking base fancy build facility for VAX %BACKUP-S-CREATED, created $2$DKA200:[POPTOMAIL]POPTOMAIL$CONFIG.COM;1ptions: %BACKUP-S-CREATED, created ALL -> compiles main and <...> utility modules and links $2$DKA200:[POPTOMAIL]SMTP_ROUTING.FDL;1 MAIN -> compiles main programs only UTIL -> compiles utility modules LINK -> links the executable and places it in [.-] directory. Build option ? [ALL]LINK POPTOMAIL utility link facility for VAX => Linking POPTOMAIL /NOTRACEBACK %RENAME-I-RENAMED, $2$DKA200:[POPTOMAIL.SOURCE]POPTOMAIL.EXE;1 renamed to $2$DKA 200:[POPTOMAIL]POPTOMAIL.EXE;1 Completed processing of LINK Thank you for using VMS Installation procedure done Thank you for installing POPTOMAIL. We hope this software provides you with years of productive use without problems. There is no warranty, impled or otherwise for this software, nor does Vaxination informatique assume any responsability. USE AT YOUR OWN RISK. Please note that if you did not build the executable, you will need to manually invoke [.SOURCE]BUILD_MAIN.COM and select LINK. Precompiled objects are available for VAX and Alpha. Once the executable is built, you will need to configure the software as well as populate the list of pop mailboxes the software will scan for mail. This software does not require proprietary HP Ink cartridges to run. Index A authentication, 3 B BATCH, 11 Bottom, 6 C CONFIGURATION, 5 crashes, 3 cr-lf, 3 D debugging, 6 Default directory, 11 Delete, 6 detached process, 5 Disabling mailbox, 10 DISCLAIMER, 1 E Errors, 9 F Flag, 6, 9, 10 H Headers, 1, 6, 9 I INSTALL.COM, 4, 14 K key, 8, 13 L LICENSING, 1 Log Files, 11, 12 M Max Messages per User, 7 MBA device, 10 N None, 6 P password, 3 Popdelete, 9 Popheader, 9 Popkey, 8 POPKEY, 13 Poppassword, 8 Popserver, 8 POPTOMAIL$CONFIG.COM, 6 POPTOMAIL.COM., 5 POPTOMAIL.EXE, 11 POPTOMAIL.LOG, 5, 12 POPTOMAIL_PARAMS.COM, 5, 6 POPTOMAIL_PARAMS.TEMPLATE), 6 POPTOMAIL_SHUTDOWN.COM, 10 POPTOMAIL_STARTUP.COM, 4, 5 POPTOMAIL_START.COM, 5 POPTOMAIL_START.LOG, 5 POPTOMAIL_TRANS.LOG, 12 POPTOMAIL_TRIGGER.COM, 10 Popuser, 8 Postmaster, 6 Sample Installation procedure 18 Q quoted-printable, 3 R Restart, 10 Return transport, 7 Routing database, 3, 7 ROUTING$EDIT, 8 ROUTING$EDIT.COM, 10 S Scan Interval, 6 Server Username, 6 Shutdown, 10 smtpfrom, 8 SMTP_ROUTING.FDL, 13 SMTP_ROUTING.FRM, 13 SMTP_ROUTING.TXT, 13 STARTUP, 5 Startup procedure, 4 Startup Queue, 7 T TCPIP$DEVICE, 3 TCProutines.C, 3 Temporary files, 3, 11 Top, 6 U UAF entry, 11 Unzip, 4 Username, 6, 11, 14 V vmsident, 8 VMSIDENT, 13 VMSroute, 8 Y yyyymmddhhmmssmm.TMP, 11 $ $QIO, 3 . .ZIP, 4