home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / INTERNET / GIGO0209.ZIP / LISTSERV.ZIP / LISTSERV.DOC < prev    next >
Text File  |  1993-12-20  |  5KB  |  129 lines

  1. LISTSERV -
  2.  
  3.   Small kludge (with full source) to process mailing-list 
  4.   maintenace requests from remote users.  The functionallity of it 
  5.   is similiar to other listserv processors on the internet.
  6.  
  7. * THIS PROGRAM DOES NOT BY ITSELF MAINTAIN AND RUN YOUR MAILING LISTS *
  8.  
  9.   This program only handles the subscribing and unsubscribing of 
  10.   people in an automated way, that the users can use without the 
  11.   intervention of the system administrator.  You will still need ML to 
  12.   actaully process the message bases and send the messages out to 
  13.   people in the mailing list.
  14.  
  15.   Full source is provided should you wish to modify it's behavior
  16.   or add features.  I'd be interested in seeing any changes to this 
  17.   program! :-)
  18.  
  19. ABOUT THE DOCS
  20.  
  21.   Never ask the programmer to make the docs.  Programmers never have 
  22.   the real-world perspective ;-)  If you can make these more sensible 
  23.   to the public, feel free to shoot them back my way.  
  24.  
  25. HOW IT WORKS (from the user's perspective)
  26.  
  27.   [listserv@yoursite mode]
  28.  
  29.   Users send a message to listserv@yoursite (or whatever address you 
  30.   set it up as).  Users can request HELP, SUBSCRIBE <listname>, 
  31.   UNSUBSCRIBE <listname>, INDEX, QUERY, and DISCONNECT.  The listserv 
  32.   program processes there requests and sends back a reply. 
  33.  
  34.   -or-
  35.  
  36.   [listname-r@yoursite mode]
  37.  
  38.   Users send a message (message body doesn't matter) to the address you 
  39.   specify.  The user is automaticly added to the mailing list, and send 
  40.   back an informational message about the mailing list in question.
  41.  
  42.  
  43. HOW IT WORKS (from your perspective).
  44.  
  45.   You need to set up some additional configuration entries in your
  46.   GATEWAY.CFG file.
  47.  
  48.     USER  listname-r  FUNCTION  listserv subscribe listname
  49.     USER  list2name-r FUNCTION  listserv subscribe list2name
  50.  
  51.     USER  listserv    FUNCTION  listserv
  52.  
  53.   When a user sends a message to one of the above addresses, GIGO will 
  54.   generate FUNCTION.REQ, a simple text file.  At the top of that text 
  55.   file will be two lines ("Apparently-To:  ..." and "Apparently-From: 
  56.   ...").  Following those two lines, the entire email message is 
  57.   written to disk, with all headers.  It will be up to the external 
  58.   program if it wants to understand any of them.
  59.  
  60.   LISTSERV will read that file, finding out who the user is, and 
  61.   basically ignoring the rest of the message header.
  62.  
  63.   When the LISTSERV program is used in the first context, LISTSERV will 
  64.   attempt to open LISTNAME.ML (.ml stands for mailing list).  The 
  65.   user's address will be placed at the top of this list.  Duplicates of 
  66.   the same address are not repeated.  If LISTNAME.FAQ exists, it will 
  67.   be sent to the user in the confirmation message.  Use this file to 
  68.   designate any special rules, the posting-address, etc.
  69.  
  70.   In the second instance, LISTSERV is a little more interactive with 
  71.   the user.  The user can request HELP; help will be given.  If 
  72.   LISTSERV.HLP exists, it will be shown; otherwise, the default text is 
  73.   given in English.  Users can subscribe and desubscribe to mailing 
  74.   lists; the mailing list names have to be 8 character or less and 
  75.   contain only letters, numbers, and dashes.  
  76.  
  77.   When a user SUBSCRIBES or UNSUBSCRIBES, a check for the mailing list 
  78.   name (LISTNAME.ML; etc) is made.  If it is there, the function will 
  79.   be processed.
  80.  
  81.   Upon the return to GIGO, GIGO will check to see if FUNCTION.REQ was
  82.   made.  LISTSERV generates that file, and GIGO will happily send 
  83.   it to the remote user.
  84.  
  85.  
  86. FILES YOU NEED TO MAKE:
  87.  
  88.   Note that "LISTNAME" may be subsitute with any 1-8 character name of 
  89.   your choice, and is a generic term.
  90.  
  91.   LISTNAME.ML    : Actual list of email addresses (one address per 
  92.                    line) of people that should be receiving messages
  93.                    related to this list.
  94.   LISTNAME.FAQ   : File given to anyone who subscribes the mailing
  95.                    list.  Should include conference rules; posting 
  96.                    address;  contacts; etc.
  97.     ....
  98.  
  99.   LISTSERV.TXT   : Shown at the top of all responses made by the 
  100.                    LISTSERV program.
  101.  
  102.   LISTSERV.IDX   : List of all mailing lists and their descriptions
  103.                    (simple ASCII file that is shown verbatim whenever
  104.                    a user requests the INDEX command).  If not 
  105.                    available, the program will generate it's own
  106.                    index on the fly without descriptions.
  107.  
  108.   LISTSERV.HLP   : Help file shown when the user asks for HELP.
  109.                    Again, default help is available.
  110.  
  111.  
  112.  
  113. ABOUT THE SOURCE:
  114.  
  115.   The source code is written in Spagetti-C (tm), and is not terribly 
  116.   big.  It compiled fine under Borland 3.1 (16 bit) with the large 
  117.   memory model for me.  I'm not using anything fancy, this is a 
  118.   quick-n-dirty program.  (A total of about 4 hours, if that..)
  119.  
  120.   The source should be able to provide you with a shell for other
  121.   function requests; you may be able to even make it into a more 
  122.   powerful mailing list processor.
  123.  
  124.   This program and source code is Copyright 1993 by Jason Fesler.  All
  125.   rights reserved.  Use of this code is granted to the Public Domain.
  126.  
  127.  
  128.   jfesler@wmeonlin.sacbbx.com
  129.