MailList -- a CGI script for maintaining a mail or address list on the web. Version 0.9, 05/24/2001. Download: http://www.tedsowinski.com/ml/MailList_v0.9.tar.gz Written by Ted Sowinski, email: tedsowinski@attbi.com or t_sowinski@yahoo.com Features. - very configurable - requires no DBMS - two levels of security: read-only and update - web interface for maintaining the mail list data - excellent for small, custom mailing lists Software License. Free. Please send me bug reports, comments, and requests for new features. Compatibility. MailList is written in perl and was developed under Red Hat Linux 6.1 and Apache 1.3. It should run with only slight changes on all Linux and Unix Apache web servers. If you're stuck with Microsoft's web server, too bad! Files in this package: README - this file common.pl - shared CGI functions, courtesy of Shishir Gundavaram last_mod.pl - perl function, returns the last modified date of a file as a string mail_list.cgi - main MailList perl CGI script mail_list.conf - sample configuration file mail_list.csv - sample data file mail_list.bak - sample backup data file tmp - tmp directory for downloading Installation. Install files. 1) Create a subdirectory under your document root, say "ml". 2) Download http://www.tedsowinski.com/ml/MailList_v0.9.tar.gz 3) Run "tar zxf MailList_v0.9.tar.gz" 4) Make sure permissions of mail_list.csv, mail_list.bak, and tmp allow your web server to update them. Configure mail_list.cgi for your machine. If necessary, change these lines: $find = "/usr/bin/find"; $htpasswd = "/usr/bin/htpasswd"; # see below under Security $passwd_file = "/etc/httpd/conf/users"; # see below under Security $auth_file = "/etc/httpd/conf/auth"; # see below under Security Test install. Try it from your browser, i.e.: http://www.yourhome.com/ml/mail_list.cgi It should look and work the same as mine: http://www.tedsowinski.com/ml/mail_list.cgi Security. If you need to protect the privacy of the people in your mail list, so your users will have to enter a password to access the mail list, configure the Apache httpd.conf file to restrict access to your install directory by using an "AuthUserFile". For example, AuthName "My Mail List" AuthType Basic AuthUserFile /etc/httpd/conf/users <== anywhere except under DocumentRoot! require valid-user Then use the Apache password utility, htpasswd, to create and add users to the AuthUserFile. If necessary, change these lines in mail_list.cgi: $htpasswd = "/usr/bin/htpasswd"; $passwd_file = "/etc/httpd/conf/users"; $auth_file = "/etc/httpd/conf/auth"; htpasswd is also used by the mail_list.cgi so users can change their password. Change $htpasswd if it is located somewhere else. If the AuthUserFile is located elsewhere, change $passwd_file. The $auth_file is used by mail_list.cgi to determine who has update permission. If you want to allow only a subset of your users to update the mail list, copy the AuthUserFile over it (the passwords are optional) and delete those users who should only have read access. How to use it. You'll see four buttons at the top to add a new member, undo the last change, refresh the table (after hiding or unhiding columns or filtering rows), and to change your password (if access is restricted with an AuthUserFile). If not using an AuthUserFile, you won't see the change password button. Also, read-only users won't see the add or undo buttons. The numbers along the left side are for changing the info for that slot. Read-only users won't see these either. Click on one, to see how it works. Back on the main screen, there are two list boxes for filtering out rows that either contain data in a certain column or are missing data or both. Also, (new in v0.9) there is a text box to enter the maximum number of rows to display at a time. If you click on the link "Download a comma-delimited file", it might start up a spreadsheet program (if you have one) and load the data into it. You might just see a lot of data separated by commas in your browser. The data that you get should match what is currently on the screen. The idea was to allow people to download the raw data into a spread sheet so they can manipulate it as they wish, i.e., create mailing labels, do a mass email, or just have a copy on your machine so you don't have to connect to the internet every time to look someone up. How to customize. All of the columns can be customized by editing mail_list.conf. Blank lines and lines beginning with # are ignored. Lines containing [key=value] are global paramters for customizing the HTML. Lines containing ColumnName:key=value:key=value:... are for customizing the columns. This sample conf file contains all options currently supported. It's best to set up the columns you will need before starting to add entries, but you can add more columns on the end later. If you delete or move columns, you will need to manually edit the MailList data file, mail_list.csv. Suggestions. - Split Name into First and Last. - Make the last name the first column. - Add Email_Address, Comment, Title, whatever. Change History. 02/18/2001 v0.8 - Initial release. 05/24/2002 v0.9 - Bug fix: when you hid columns or filtered rows, these settings were lost if you edited a row; this is now fixed. New feature: to speed things up only N rows are displayed at a time. N defaults to 50. It can be overridden in the mail_list.conf file, eg., [maxrows=20], and temporarily on the web page (to see all the rows at once, for example). If the number of rows is greater than N, a series of links is displayed above the table so you can go directly to the desired section.