SolutionBase: Taking SquirrelMail to new levels

SquirrelMail can make a powerful Web-based e-mail solution for your organization, but it can do a lot more than simple e-mail. In this article, Jack Wallen shows how to use SquirrelMail plug-ins to create a complete Web-based groupware solution.

SquirrelMail is a great option if you want to create Web-based e-mail for your company's Web-based mail server. But, like all good Linux applications, SquirrelMail is packed with configuration options that allow it to go beyond just a Web-based mail solution. Like all IT departments, this is exactly what you need. In this article, I'll introduce you to some of the SquirrelMail plug-ins that will help you take SquirrelMail to new levels.

Logging in and plugging in

The first thing you will have to do is point your browser to the location your SquirrelMail is located. In my case, that address is http://localhost/squirrelmail/. You will first see the SquirrelMail log in screen, as shown in Figure A.

Figure A

Remember, you cannot log in as your root user.

Once logged in, you will see the Inbox page of the user, as shown in Figure B.

Figure B

The default page is where you'll find everything you need to get going.

Once within the main page, you will notice several links: Compose, Addresses, Folders, Options, Search, and Help. Click Options; once inside, you should see seven available options, as shown in Figure C, if you have followed prior instructions.

Figure C

This is where the real SquirrelMail administration takes place.

Next, select Plugins. Press [+] -- to the left of Plugins -- to reveal the nested menu entries. Once expanded, you'll see the available plug-ins for SquirrelMail, as shown in Figure D.

Figure D

If you select one of the Plugin names, a new window will appear, revealing the README file from the plug-in.

The first plug-in we are going to install is the Calendar plug-in, which is a simple calendar with Month/Day views and the ability to add, edit, or delete events. This calendar can also handle repeating events.

To install the plug-in, select the checkbox next to the Calendar plug-in and then press the Change Settings button. The Calendar plug-in is now installed.

If you see a Config file can't be opened. Please check config.php error, you will need to install the plug-in via the command line configure script. To do this, open up a console window and navigate your way to the SquirrelMail directory. Once inside that directory, issue the command ./configure to run the script.

The first screen of the command line configuration utility (as shown in Figure E) allows you to take care of the same configurations within the Web-based configuration, and more.

Figure E

The configure script must be run as the root user.

Select Option 8 to enter the Plugin section, as shown in Figure F.

Figure F

Remember to save your work after adding a plug-in.

To install the Calendar plug-in, press [8] and then [Enter]. Now press [S] for Save data. You will have to press [Enter] to continue on, but your calendar is now installed. Now, when you log in to SquirrelMail, you will notice a new link at the top, as shown in Figure G. This new link will send you directly to the SquirrelMail calendar.

Figure G

SquirrelMail is looking more and more like a groupware solution.

Select the Calendar link and the basic month view will appear, as shown in Figure H.

Figure H

To switch between Month and Day view, just select the links.

The Calendar module doesn't have a lot of fancy configuration options. It's pretty much straight-forward, as is entering events.

Shared calendars

Of course, it doesn't really come close to groupware if you can only see one calendar. The ability to see multiple calendars is a function added by the Shared Calendars plug-in. There are a few steps to installing this plug-in. First, grab the necessary files:

First, make a back up of your current calendar directory within webmail/plugins, where webmail is the directory SquirrelMail is installed into.

With your calendar directory backed up, untar all of the files you downloaded into the plugins directory. Once you have them untarred, you can install each package, as outlined above.

With the Shared Calendar in place, you'll notice a number of changes. The primary difference is that there are more details to be setup for individual events.

There is a small glitch in the installation. In a default installation, no one will be able to share calendars. In order to fix this, edit the config.php file located in the new calendar/data directory. Look for this section:

$cal_admins = array(

// for example only, real entries
// should not have the two slashes
// at the beginning of the line:
//   'martina*'           => 'yes',
//   ''  => 'yes',
//   'jennifer@example.*' => 'no',

Add the users that will be considered calendar administrators. Those administrators will be the only ones able to create public calendars. Be careful how you set these up; if you configure them incorrectly, the SquirrelMail installation will come to a halt until you get it configured correctly. To add a user as an administrator, add a line like this:

'jlwallen'       => 'yes',

Once you add them (and save the file), log in as that user and go to the Options menu. Now you will see a new entry called Calendar Administration. From there, you can either create Shared or Public Calendars or manage user permissions, as shown in Figure I.

Figure I

Select either Calendars or Users to administer that particular section.

Press the Calendars button to set up a public calendar. In Figure J, you will see how simple it is to set up a public calendar. Enter the name of the new public calendar, select the Make Public check box, and press the Add button. Now the new calendar is public.

Figure J

Once a public calendar is created, it will show up in the Public Calendars section.

Remember: All users will be able to read and write to Public Calendars.


The next plug-in we're going to add -- using the same method(s) listed above -- is the SpamCop plug-in. The SpamCop plug-in is exactly what is sounds like; it helps stop spam from getting to users. Once you have added the plug-in, go back to the main SquirrelMail screen and select the Options link. You will now see a new entry available called SpamCop -- Spam Reporting as shown in Figure K.

Figure K

Help fight the good fight with SpamCop.

Select the SpamCop link to open the SpamCop configuration page, as shown in Figure L. You will soon notice that SpamCop is actually a reporting service; SpamCop sends a report to the ISP used by suspected spammers. The service is free; however, a signup is required to obtain a SpamCop authorization code. Once you have received your authorization code, enter it in the text field labeled Your SpamCop authorization code.

Figure L

You must sign up for SpamCop before you can use it.

You'll notice that Figure L shows two links near the top. One link is to enable the SpamCop link. The second is to enable the deleting of spam when it is reported. At the very least, you will need to enable the SpamCop link so that users can report an e-mail. Once you have enabled the link, users will see the Report as Spam link in the header section of each e-mail, as shown in Figure M.

Figure M

Users will get a confirmation before the actual reporting of an e-mail as spam happens.

Before I move on, there are two ways to use the SpamCop plug-in: e-mail based and Web-based reporting. The only difference between the two is that using e-mail based reporting requires the user to wait for a confirmation e-mail to finalize the reporting. Most users will not want to undertake this much effort to report spam. I would highly recommend going with the Web-based reporting with SpamCop.  


Another nice plug-in is the Notes plug-in. This plug-in allows users to create easy-to-read notes to use as reminders. Get the plug-in and install it in the same method as outlined above.

There is one small glitch in the installation: After you run the standard install, if you try to go to the notes module, you'll get an error saying the config.php file does not exist. This is referring to the file located in the notes subdirectory. Navigate to the notes subdirectory. In that directory, you'll notice a file called config.php.sample. Once it is installed, you'll notice a new link at the top. The simplest way around this error is to rename the config.php.sample to config.php.

Within the config.php file, there are some configurations you can deal with. For example, by default the users can keep a maximum amount of nine notes, with each note having a maximum size of one thousand characters. You can disable these settings by setting each to 0.

Final thoughts

While SquirrelMail was not intended to be used as a standard groupware application, this flexible tool can be used as a very inexpensive, reliable groupware-like setup. I have deployed this system in a few situations where small businesses needed to have access to e-mail, notes, and a shared calendar. It still works flawlessly, with no complaints. So if you're looking to add inexpensive groupware to your organization, SquirrelMail could easily be the ticket.