)                                 MX-DIGEST .                             An MX Digest Maker,                              January 6, 2000  G The MX-DIGEST package allows MX sites to produce digests for MX mailing D lists.  The digest contains a copy of each message posted to a list,J grouping related messages together in the order in which they were posted.  K MX_MAKE_DIGEST was written by David A. Curry (davy@intrepid.ecn.purdue.edu) H for UN*X and modified by Hunter Goatley (goathunter@MadGoat.com) to workH with Message eXchange (MX) under VMS.  MX_DIGEST.C was written by Hunter Goatley.     The MX-DIGEST Files  ------------------------------* MX-DIGEST consists of the following files:    AAAREADME.DOC			A change history AAAREADME.TXT			This file " DESCRIP.MMS			MMK (MMS) build file; MX-DIGEST-BUILD.COM		Command procedure to build executables 9 MX-DIGEST-SITE_DELIVER.COM	SITE_DELIVER.COM for MX-DIGEST B MX_DELIVER_DIGESTS.COM		Command procedure to make and mail digests= MX_DIGEST.ALPHA_EXE		Executable linked under OpenVMS AXP V1.5 6 MX_DIGEST.ALPHA_OBJ		Object file created by DEC C V4.09 MX_DIGEST.C			C source for program to create .INPUT files 0 MX_DIGEST.EXE			Executable linked under VMS v5.4 MX_DIGEST.H			C include file1 MX_DIGEST.OBJ			Object file created by VAX C v3.2 B MX_DIGEST_SUBMIT.COM		Command procedure for submitting digest runsA MX_MAKE_DIGEST.ALPHA_EXE	Executable linked under OpenVMS AXP V1.5 : MX_MAKE_DIGEST.ALPHA_OBJ	Object file created by DEC C V4.0< MX_MAKE_DIGEST.C		C source for program to create the digests4 MX_MAKE_DIGEST.EXE		Executable linked under VMS v5.45 MX_MAKE_DIGEST.OBJ		Object file created by VAX C v3.2   E The comments at the top of MX_MAKE_DIGEST.C have not been modified to H reflect how all of this works with MX.  The modified version is included below.     Building MX-DIGEST ------------------------------H The MX-DIGEST programs are written in C and can be compiled using eitherH VAX C or GNU C.  (Tested with VAX C v3.12 and GNU C v2.2.2.)  To compile( and link them, just run MX-DIGEST-BUILD:   	$ @MX-DIGEST-BUILD   C If you don't have either VAX C or GNU C, the .COM file will use the  provided .OBJ files.     Installing MX-DIGEST ------------------------------? Once the .EXEs are created, copy the following files to MX_EXE:    	MX_MAKE_DIGEST.EXE  	MX_DIGEST.EXE 	MX_DELIVER_DIGESTS.COM   : Additionally, MX-DIGEST-SITE_DELIVER.COM must be copied toK MX_EXE:SITE_DELIVER.COM or merged with the existing SITE_DELIVER.COM.  It's > a very small file---merging it with an existing file should be straight-forward.   J MX_DELIVER_DIGESTS.COM should be executed at some regular interval by handG or by submitting it to a batch queue, or a program like DECscheduler or I KRONOS.  NOTE: It does *NOT* resubmit itself to a batch queue---if you go E that route, you'll have to add that code yourself (or call it from an D existing daily batch job).  A sample command procedure to submit it," MX_DIGEST_SUBMIT.COM, is provided.  E As delivered, MX_DELIVER_DIGESTS.COM will only create a digest if the E .INPUT file is larger than 15 blocks or is older than 3 days.  If you G want the digest created any time there are messages posted, then simply B adjust the following symbol definitions in MX_DELIVER_DIGESTS.COM:  > 	$ minimum_digest_size = 15	!# of blocks before digest is sent, 	$ maximum_digest_age = f$cvtime("TODAY-3-")  B Add the following commands to the MX configuration file using MCP:  D    1.  In MCP, establish a PATH to invoke the SITE delivery agent to6        add messages to the *-DIGEST.INPUT file, e.g.,:  0 		MCP> define path DIGEST.SITE SITE/ROUTE=DIGEST  C        (You only need one path, regardless of the number of lists.)   -    2.  Add a rewrite rule like the following:   C 	  MCP> DEFINE REWRITE_RULE "<{u}@DIGEST.SITE>" "<{u}@DIGEST.SITE>"   E Finally, for each list that is to be digested, you should perform the  following steps:  $    1.  Set the list to /DIGEST mode:  ! 		MCP> MODIFY LIST MX-List/DIGEST   E    2.  Create the *-DIGEST.* files in MX_SITE_DIR as decsribed below. >        Each list *must* have at least a list-DIGEST.INFO file.  J    3.  Add a user to the list whose address is {list-address}@DIGEST.SITE.C        For example, the following address was added to the Info-Zip         mailing list:   		info-zip@DIGEST.SITE  D    4.  Make sure that "owner-listname@yourhost" (the 3rd line of theE        .INFO file) is listed as a list owner.  Digests posted will be C        sent "From:" that address, so that address must be listed as @        a list owner.  Be sure you check the case of the address!  E Any message posted to the Info-Zip list will be processed by the SITE J delivery agent and added to the INFO-ZIP-DIGEST.INPUT file in MX_SITE_DIR.     How MX-DIGEST Works  ------------------------------F MX_DIGEST is called by the SITE delivery agent to add the message to aF .INPUT file for that list.  This file is used instead of the normal MXE archives for a number of reasons, the biggest of which is that it's a K Stream_LF file, so the C library functions fseek() and ftell() will work on  it.   I MX_MAKE_DIGEST is called by MX_DELIVER_DIGESTS to convert the .INPUT file F to a .OUTPUT file, with is then mailed to the {list-name}-Digest list.   From MX_MAKE_DIGEST:  D  * This program uses the file "digest.info" to figure out what issue;  * of the digest it is making.  The format of this file is:   *2  *	Name of the List		# leave out the word "digest",  *	Host				# the host where the digest lives%  *	From				# who sends the digest out "  *	To				# who the list is sent to$  *	Volume				# Volume XX : Issue XXX(  *	Date				# Day, dd Mon yy hh:mm:ss ZZZ  *  I NOTE: the MX version *does* use all of this info.  The MX_SITE_IN program 5       is used to enter the message into the MX queue.     * As an example:   *	  *	Foobar   *	intrepid.ecn.purdue.eduE  *	Dave Curry (The Moderator) <Foobar-Digest@intrepid.ecn.purdue.edu> &  *	Foobar-List@intrepid.ecn.purdue.edu  *	Volume 1 : Issue 0   *	Mon,  4 Jan 88 20:15:33 EST  *H  * Make sure the "From" line includes a legitimate RFC 822 mail address.H  * Make sure the issue number starts at zero; it gets incremented BEFOREG  * generating each digest.  Volume numbers must be incremented by hand. G  * The "digest.info" file gets modified by the program after generation   * of each digest.  *G  * The contents of the file "digest.head", if it exists, will be placed F  * between the list of today's topics and the top of the digest.  ThisH  * can be used to put information about where to FTP archives from, etc.  *G  * The file "digest.input" should contain a set of mail messages in the F  * format of a UNIX mailbox.  These messages will be read into memory,H  * and a list of "Today's Topics" generated from the subject lines.  TheJ  * messages will then be sorted so that all the messages on the same topicH  * come out together in the digest.  Any message whost first word in theG  * subject line is "Administrivia" will be guaranteed to come out first   * in the digest.   *7  * The digest will be left in the file "digest.output".   *K  * There is one problem with the sorting of messages by subject line to get F  * all the same topic together.  The code handles elimination of "Re:"L  * strings, but if someone changes the subject on you, then things get ugly.+  * This shouldn't happen too often, though.   *J  * Special thanks to Jon Solomon who sent me his TELECOM digest generatingA  * program.  I swiped a lot of ideas from it in writing this one.   *  * David A. Curry   * davy@intrepid.ecn.purdue.edu   */   G To support multiple lists automatically under MX, this version actually K puts "list-" in front of the "digest" files.  For example, for the Info-Zip  list, the files used are:    	INFO-ZIP-DIGEST.HEAD  	INFO-ZIP-DIGEST.INFO . 	INFO-ZIP-DIGEST.INPUT  (created by MX_DIGEST)  I These files are expected to be found in MX_SITE_DIR:.  To support digests F for multiple lists, just add the appropriate *-DIGEST.* files.  Sample files are included below.     P ----------------------- Sample *-DIGEST.HEAD File ------------------------------G Send digest submissions to. . . . . . .         Info-Zip@WKUVX1.WKU.EDU @ Send add/unsubscribe requests to . . . .	LISTSERV@WKUVX1.WKU.EDU#    (send HELP for more information) A Send problems about the list to. . . . . 	IZip-Mgr@WKUVX1.WKU.EDU  Send bug/problem reports aboutG     the ZIP or UNZIP programs to. . . .         Zip-Bugs@WKUVX1.WKU.EDU   @ Archives for INFO-ZIP are on quest.jpl.nasa.gov (128.149.75.43).9 FTP as user "anonymous" with any password; then "cd pub". 4 Zip and UnZip for many platforms can be found there.? Past issues of the digest are in the "info-zip/MAIL" directory.   P ----------------------- Sample *-DIGEST.INFO File ------------------------------ INFO-ZIP WKUVX1.WKU.EDU? Hunter Goatley -- INFO-ZIP List Owner <IZip-Mgr@WKUVX1.WKU.EDU>  Info-ZIP-Digest@WKUVX1.WKU.EDU Volume 1 : Issue   0 Mon, 26 Oct 1992 17:00:27 P --------------------------------------------------------------------------------  0 Questions, comments, or suggestions are welcome.  : Hunter Goatley, Process Software, <goathunter@PROCESS.COM>