A Simple Mailing List Software


Installing   SIMPLEX



System Requirements



Admin Notes




Note: You will need root privileges to go through the installation.


Assuming that you have saved the downloaded file to /tmp/simplex; untar the downloaded simplex.tar file using the commands:

# cd /tmp/simplex
# tar xvf simplex.tar

The tar file contains only one PERL script file; namely :


2. Edit the file to change the "Program Constants" section according to your needs and system settings..

The PERL variables ("Program Constants") you need to change are:


3. $root_dir:
<$root_dir> is the directory where the listserver related files will be placed. I recommend /etc/listserver. Please note that this directory must have an access mode of 777. This directory will be used by to store the subscriber database (actually it is a simple text file) and forbidden email addresses file (also a text file). (forbidden email addresses file /$root_dir/forbidden will contain email addresses of people who are banned to send messages to this service. A  small tool to avoid spamming... Yes, I know! It is not possible to stop spammers but this might slow down them a bit.
e.g: $root_dir="/etc/listserver";

4. $mailprogram:
<$mailprogram> is the full path to your sendmail or equivalent program. Normally you wouldn't have to change this. If you are using a program other than standard UNIX sendmail, please note that we use the "-t" flag of sendmail; and you might have to modify the lines which mention the $mailprogram accordingly.
e.g: $mailprogram="/usr/lib/sendmail";

5. $admin_email:
<$admin_email> is the email address for the administrator of this list service. Currently a notification is sent to this address if someone in the forbidden lists sends a message to any of the managed lists. Do not forget to escape the @ character by a \ as required by modern PERL implementations.
e.g: $admin_email="cayfer\";
6. $sub_subj:
<$sub_subj> is the subject you want to be placed in subscription confirmation messages. Keep it as short as possible.
e.g: $sub_subj = "Your subscription request to a Bilkent Alumni Message List";
7. $unsub_subj:
<$unsub_subj> is the subject you want to be placed in unsubscription confirmation messages. Keep it as short as possible.
e.g: $unsub_subj = "Your unsubscription request";
8. $already_subj:
<$already_subj> is the subject you want to be placed in messages sent to people who send a subscription request to a list they have already subscribed to. Keep it as short as possible.
e.g: $already_subj = "You are already subscribed.";

9. $subj_prefix:
<$subj_prefix> is the string that we shall prefix to user supplied Subject lines before distributing a message to subscribers. The purpose of this prefix is to help those recipients who wish to filter  their incoming messages. This variable can have a null value.
e.g: $subj_prefix="BAML: ";
10. $xmailer:
<$xmailer> is the X-Mailer description to be used in outgoing messages. Not important at all; could be any text. Keep it as short as possible.
e.g: $xmailer = "Bilkent Alumni Message Lists";
11. $mailaddr:
<$mailaddr> is the mail address thru which people will communicate with this list. Change only the host part of the email addr in the line below. Do not forget to escape the "@" with a backslash.
e.g: $mailaddr = "$listid\";
12. $list_url:
<$list_url> : I suggest you setup a web page to publish some info on how people should use the lists of
this service, some sample subs/unsubs messages etc. Once you get this page done, you must put its full URL into $list_url. if you do not intend to maintain a web page for this service you should assign a null value to $list_url.
You can see a sample web site for this application here.
e.g: $list_url="";
13. $nburst:
<$nburst> : For highly populated lists, creating too many sendmail processes could cause significant performance degradation on the server. To avoid this, this program will sleep for <$sleep_interval> seconds after sending each <$nburst> messages.
e.g: $nburst = 10;

14. $sleep_interval:
<$sleep_interval> : see the comment above for <$nburst>.
e.g: $sleep_interval = 10;
15. Notification Mails:
The script contains various PERL statements that build and sendout notification mails to the user and to the list administrator. If you like you can modify these mail messages too; but I recommend you leave them as they are unless you have some experience with PERL.


open(MAIL, "|$mailprogram -t");
print MAIL "From: $listname <$admin_email>\n";
print MAIL "Subject: $already_subj\n";
print MAIL "X-Mailer: $xmailer \n";
print MAIL "To: $sender\n\n";
print MAIL "You are already subscribed to \"$listid\" : $listname\.\
close (MAIL);

16. Once you finish editing the "Program Constants"
Copy the edited script file to /usr/local/bin; or whereever you are putting your local site binaries.

Make sure that /usr/local/bin/ is owned by root:root.
( chown root:root /usr/local/bin/ )

Make sure that the file is world readable/executable and writable only by the owner.
(chmod 755 /usr/local/bin/ )


17. Creating Lists :
Think of some easy-to-remember "list alias names" for the lists that you want to start running. "general" could be a good one start with. Please take care that the list alias names will be used as the recipient name in email addresses; therefore they must be valid user IDs for your UNIX.

Think about some short but explanatory "Full Names" for these lists.


List Alias Name Full List Name
test SIMPLEX Test List
general General Bilkent Univ. Discussions
alumni General Bilkent Alumni List
ee-grad EE Grad Students List
cs-grad CS Grad Student List
chess Chess Club List

To create the lists, you need to put some new aliases in your mail transport agent's (usually /usr/lib/sendmail) "aliases" file. The name of this "alias" file is specified in the sendmail configuration file (/etc/ and unless somebody has changed it; it is "/etc/aliases".

For every list you want to start, you must put a line in the mail aliases file and execute the "newaliases" UNIX command. For the above 5 lists; for example; you would put

# SIMPLEX List Server Related Aliases
test:    "|/usr/local/bin/ test    'SIMPLEX Test List'"
general: "|/usr/local/bin/ general 'General Bilkent Univ. Discussions'"
alumni:  "|/usr/local/bin/ alumni  'General Bilkent Alumni List'" 
ee-grad: "|/usr/local/bin/ ee-grad 'EE Grad Students List'"
cs-grad: "|/usr/local/bin/ cs-grad 'CS Grad Students List'"
chess:   "|/usr/local/bin/ chess   'Chess Club List'"

Once you edit the /etc/aliases file; you should run the "newaliases" command. Actually you need to run this command everytime you make a modification in this file. The changes you make will not be effective till you run the "newaliases" command.

18. Now you are ready!
Try subscribing yourself to the "test" list by sending an e-mail message to test@simplexserver.domain with the word "subscribe" as the first and only text in the subject line. Case is not significant. You should use your real e-mail account while sending this message.

You should soon receive an email confirmation of your subscription.

Send another subscription request using the same email account. You should receive a "You are already subscribed" message.

Subscribe another account that you can receive mail for and send a test posting to the list. Both of your accounts should receive this posting.

Try unsubscribing from the "test" list by sending an e-mail message to test@simplexserver.domain with the word "unsubscribe" as the first and only text in the subject line. Case is not significant. You should use your real e-mail account while sending this message.You should soon receive an unsubscription confirmation.


19. Enjoy!
22. I strongly recommend that you read "Admin Notes" to make full use of SIMPLEX features.