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 >
Wrap
Text File
|
1993-12-20
|
5KB
|
129 lines
LISTSERV -
Small kludge (with full source) to process mailing-list
maintenace requests from remote users. The functionallity of it
is similiar to other listserv processors on the internet.
* THIS PROGRAM DOES NOT BY ITSELF MAINTAIN AND RUN YOUR MAILING LISTS *
This program only handles the subscribing and unsubscribing of
people in an automated way, that the users can use without the
intervention of the system administrator. You will still need ML to
actaully process the message bases and send the messages out to
people in the mailing list.
Full source is provided should you wish to modify it's behavior
or add features. I'd be interested in seeing any changes to this
program! :-)
ABOUT THE DOCS
Never ask the programmer to make the docs. Programmers never have
the real-world perspective ;-) If you can make these more sensible
to the public, feel free to shoot them back my way.
HOW IT WORKS (from the user's perspective)
[listserv@yoursite mode]
Users send a message to listserv@yoursite (or whatever address you
set it up as). Users can request HELP, SUBSCRIBE <listname>,
UNSUBSCRIBE <listname>, INDEX, QUERY, and DISCONNECT. The listserv
program processes there requests and sends back a reply.
-or-
[listname-r@yoursite mode]
Users send a message (message body doesn't matter) to the address you
specify. The user is automaticly added to the mailing list, and send
back an informational message about the mailing list in question.
HOW IT WORKS (from your perspective).
You need to set up some additional configuration entries in your
GATEWAY.CFG file.
USER listname-r FUNCTION listserv subscribe listname
USER list2name-r FUNCTION listserv subscribe list2name
USER listserv FUNCTION listserv
When a user sends a message to one of the above addresses, GIGO will
generate FUNCTION.REQ, a simple text file. At the top of that text
file will be two lines ("Apparently-To: ..." and "Apparently-From:
..."). Following those two lines, the entire email message is
written to disk, with all headers. It will be up to the external
program if it wants to understand any of them.
LISTSERV will read that file, finding out who the user is, and
basically ignoring the rest of the message header.
When the LISTSERV program is used in the first context, LISTSERV will
attempt to open LISTNAME.ML (.ml stands for mailing list). The
user's address will be placed at the top of this list. Duplicates of
the same address are not repeated. If LISTNAME.FAQ exists, it will
be sent to the user in the confirmation message. Use this file to
designate any special rules, the posting-address, etc.
In the second instance, LISTSERV is a little more interactive with
the user. The user can request HELP; help will be given. If
LISTSERV.HLP exists, it will be shown; otherwise, the default text is
given in English. Users can subscribe and desubscribe to mailing
lists; the mailing list names have to be 8 character or less and
contain only letters, numbers, and dashes.
When a user SUBSCRIBES or UNSUBSCRIBES, a check for the mailing list
name (LISTNAME.ML; etc) is made. If it is there, the function will
be processed.
Upon the return to GIGO, GIGO will check to see if FUNCTION.REQ was
made. LISTSERV generates that file, and GIGO will happily send
it to the remote user.
FILES YOU NEED TO MAKE:
Note that "LISTNAME" may be subsitute with any 1-8 character name of
your choice, and is a generic term.
LISTNAME.ML : Actual list of email addresses (one address per
line) of people that should be receiving messages
related to this list.
LISTNAME.FAQ : File given to anyone who subscribes the mailing
list. Should include conference rules; posting
address; contacts; etc.
....
LISTSERV.TXT : Shown at the top of all responses made by the
LISTSERV program.
LISTSERV.IDX : List of all mailing lists and their descriptions
(simple ASCII file that is shown verbatim whenever
a user requests the INDEX command). If not
available, the program will generate it's own
index on the fly without descriptions.
LISTSERV.HLP : Help file shown when the user asks for HELP.
Again, default help is available.
ABOUT THE SOURCE:
The source code is written in Spagetti-C (tm), and is not terribly
big. It compiled fine under Borland 3.1 (16 bit) with the large
memory model for me. I'm not using anything fancy, this is a
quick-n-dirty program. (A total of about 4 hours, if that..)
The source should be able to provide you with a shell for other
function requests; you may be able to even make it into a more
powerful mailing list processor.
This program and source code is Copyright 1993 by Jason Fesler. All
rights reserved. Use of this code is granted to the Public Domain.
jfesler@wmeonlin.sacbbx.com