Simple & Robust Mailing List Management

MailyList is a simple web app for managing a mailing list.  It's written in pure Perl, so it'll run on just about any website/server, including Apache, IIS, Linux, Windows, and OS X.  And it's simple to install & configure, because it's just 2 files: the script and a preferences file.

MailyList maintains a list of subscribers, to whom you can send newsletters or any other kind of mass email.  It can handle user signups & unsubscriptions from the users themselves, or you can add/remove subscribers manually.  Its built-in emailer automatically stops if any problems occur during sending, and then allows you to resume that same email for the remaining recipients with a single click.

MailyList's emailer can also be used as a general webmail sender, letting you specify the To: and From: addresses on the fly.  And if you've got UserBase on your server, you can use MailyList to send email to an entire UserBase group.

MailyList does not use the CC: nor BCC: email headers to send its messages; instead each recipient gets an individual copy of the email, delivered To: his own email address and only his email address.

Of course MailyList's email-sending and list-management features have built-in password protection.  Or, you can integrate with UserBase for more powerful user management & protection.  And if you already have an existing login system, MailyList can probably integrate with that too.

Note that MailyList is a "one-to-many" system where the administrator can send email to the whole subscriber list.  This is not to be confused with the "many-to-many" type of mailing list system where any subscriber can send an email that goes out to all other subscribers.



Administration Menu

Built-in Mailer

Interrupted-Send Recovery


To get the full version of MailyList, please choose your license type below.  And if you'd like us to take care of the whole installation process for you, then choose an installation service, too.

MailyList Full Version:
1-Website License
3-Website License
10-Website License
Instant credit card payments through PayPal.
No sign-up required!
MailyList Installation Service:
Standard install: within 2 business days
Rush install: within 24 hours, even on weekends

Installation Instructions

Note: Do not edit the mailylist.cgi SCRIPT unless absolutely necessary; instead, edit mailylist_prefs.cgi for all your customizations.

Note II: if you are using Microsoft Windows, and when you open the file, the lines all appear to be crunched together, try opening it in Wordpad (not Word) instead.  In Wordpad, save the file; this should fix the line-endings so the file's contents appear correctly in other editors like Notepad.

Note III: if you are running your server on Windows (in which case you'll need to install a copy of Perl, probably ActivePerl), then you'll need to change the first line of the script from #!/usr/bin/perl to either #!perl or #!c:\path\to\perl.exe

On your website:

  1. Put the script at /cgi-bin/mailylist.cgi.  (You could also name it, or in fact, whatever.cgi or  And put the prefs file at /cgi-bin/mailylist_prefs.cgi.
  2. Set the permissions on mailylist.cgi (aka, chmod it) to world-readable and world-executable, that is, a+rx or mode 0755.  Do NOT use 0777.
  3. Create the directory /cgi-bin/encdata/ and set the permissions on it to world-readable, -writable, and -executable, that is, a+rwx or mode 0777.  On Windows servers you may also need to set a separate "Delete" bit. 
  4. Create the directory /encapps/mailylist/ and unzip the file into it.  Make sure the images are not in a subfolder, but directly in the /encapps/mailylist/ folder.
  5. In your browser, go to to verify that the script executes properly.
  6. Unless you're integrating with UserBase or another login system, you should set the admin password.  Go to and enter whatever password you'd like to use.  The page will then give you a hash; edit your mailylist_prefs.cgi file and enter that hash into the $PREF{admin_password_hash_01} setting.
  7. (Optional) If you'd like to use instead of to access the script, then you can use one of these methods:

    SSI/shtml (most servers support this):
    Create /mailylist/index.shtml and put this line in it:

    <!--#include virtual="/cgi-bin/mailylist.cgi?$QUERY_STRING" -->

    If you're running Apache, you may also have to put these lines into your .htaccess file:

    DirectoryIndex index.shtml index.php index.html index.htm
    Options +Includes
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml

    Then set $PREF{here} = "/mailylist/"; in your mailylist_prefs.cgi file.

    Create /mailylist/index.php and then use one of these methods:

    Method A: copy and paste this line to the /mailylist/index.php file:

    <?PHP virtual("/cgi-bin/mailylist.cgi"); ?>


    <?PHP virtual("/cgi-bin/mailylist.cgi?" . $_SERVER['QUERY_STRING']); ?>

    Method B: save this file as call_mailylist.php in your website's document-root (its top level), and then add this line to the /mailylist/index.php file:

    <?PHP require($_SERVER['DOCUMENT_ROOT'] . "/call_mailylist.php"); ?>

    Finally, set $PREF{here} = "/mailylist/"; in your mailylist_prefs.cgi file.

    Default content page (IIS only):
    If you're running IIS (on a Windows server) and the SSI and PHP methods above don't work, you can try setting mailylist.cgi as a default content page.  Create the directory /mailylist/ on your server and put your mailylist.cgi into it.  Then open your IIS manager, find the /mailylist/ directory, right-click on it and choose Properties.  Go to the Documents tab, check the "Enable default content page" box, and add "mailylist.cgi" to the top of the list.

    Then set $PREF{here} = "/mailylist/"; in your mailylist_prefs.cgi file.

    META Refresh:
    Create /mailylist/index.html and put this into it:

    <html><head><meta http-equiv="refresh"
     content="0;url=" />

    Note that this just redirects your visitors from /mailylist to /cgi-bin/mailylist.cgi, so while it's better than nothing, the SSI or PHP methods above are better if your server supports them.

MailyList is now ready to use, and you can access it by visiting (or if you created that).


If you need any help with MailyList, please complete the following steps in order:

  1. Make sure you've followed the installation instructions.
  2. If you're getting an Internal Server Error, read the Internal Server Error page.
  3. If you're getting errors about missing Perl modules, read the installing Perl modules page.
  4. If you still need help, you can contact us.  Be sure to send us the full URL to the script on your server.

Shopping Cart

Client Quotes

Nice script, it's saving the day on our project.
– Aaron W.
The amount of customization in the program is incredible.  I was able to integrate it into my existing page layout relatively simply.  I was also able to easily customize the look/feel to match the current site.
– Jason M.
I just want to say you guys really stand alone in that you have a quality product and you provide genuine customer service.  It's sad but those qualities are seldom found separately, much less together.  Thanks again for your time and help.
– Alex S.
I want to thank you for your efforts on Userbase. It has become an integral part of our business and has allowed us to branch out and begin using automation on a lot of our processes. Userbase has become the gateway to advancement for our company's processes for our clients and employees.
Thanks again for a great product and great support - beyond expectations.
– Greg S.
I looked all over trying to find a simple cgi script.  I found that FileChucker was by far the best.  If you have issues with your hosting service's php.ini max upload size then this is the way to go.  Looking forward to future enhancements.
– Bob C.
I just wanted to say that yours is the first product that I've tested so far that hasn't failed on handling uploads.  This is going to work for a print company, so they are handling nothing but large files and all the other solutions I've tried so far have not been reliable.  So far yours has been 100% successful in my tests.
– Kevin H.
Do you know how rare it is to have a "canned" shopping cart that can easily do complex pricing options on a single item?  Basically, they don't exist!  I have looked.  Everywhere!  And the few that might even come close to CornerStore's functionality cost a fortune!
– Tashina P.
You've done a wonderful job with FileChucker and UserBase, and they have made a big difference to how our website runs.
– Nicholas H.
The work, the thought and the organization you put into this app is incredible.
– Bruce C.
FileChucker is working great...  Clients love it.  Vendors love it.  We love it.
– Gerry W.
I just installed the demo of your product and got it up and running in no time.  I searched high and low for a decent login script and thank God I found yours.
– Adrian F.
FileChucker is a great drop-in solution for file uploads, and worth every penny of its very reasonable cost.  Encodable's support is excellent to boot.
– Loren A.
Just one word: Fantastic.  10-minute job to plug FileChucker into my app, and it now works a treat.  It's through the hard work by people like yourselves that make my job so much easier.  Congratulations on an outstanding product... Many many thanks.
– Sean F.
Thank you VERY much for all of your help.  You've really impressed me.  We have support agreements for other software that costs thousands of dollars / year (just for the support), and most of them aren't as helpful as you have been.
– Keith Y.
FileChucker is helping drive the backend of several high profile entertainment sites for people like Shania Twain and Dolly Parton.  We're also using it to drive backend file uploads for a multi-billion dollar banking institution.  It's a great product.  We've tried other "chucking" upload solutions with progress bars using flash and php, but nothing works as reliably as FileChucker.
– Michael W.
Our members think your software is fantastic...  I would recommend your software and your company to anyone.  Thanks for all your help.  It has been a pleasure dealing with you.
– Tommy A.
Why didn't I just do this from the get-go?  So much easier.  Thanks for your work.  FileChucker makes my work easier.
– Dominic M.