Step 1: Install Perl.

If you do not have perl installed, you need to install it. On FreeBSD 5, it's as easy as:

  pkg_add -r perl

Certain programs (like spam assassin) require perl 5.8.1 or higher to function fully. If perl -v reflects anything smaller than 5.6.1, you must update it. If you intend to use qmail-scanner, perl must be suid enabled. In Perl 5.8+, suid perl is not enabled by default. Enable suidperl by adding -DENABLE_SUIDPERL to your make command (as shown below):

  cd /usr/ports/lang/perl5.8;
  make -DENABLE_SUIDPERL install clean;
  rehash; use.perl port;

If you are or will be upgrading perl on FreeBSD and using pkg* and friends (like portupgrade), add the following line to the MAKE_ARGS section of /usr/local/etc/pkgtools.conf:

 'lang/perl5.8' => 'ENABLE_SUIDPERL=yes',

You may need Perl's CPAN working for installing perl modules so make sure it's configured. You can test by running: perl -MCPAN -e shell . If that command doesn't give you a shell prompt, then you'll be prompted to configure. When you get to a prompt, the command ``exit'' will get you back out.


Step 2: Install Mail::Toaster

http://www.tnpi.biz/internet/mail/toaster/Mail-Toaster.tar.gz

   perl Makefile.PL
   make install
   make newconf (overwrites installed .conf files)
   make cgi

Documentation for the modules being called by toaster_setup.pl, toaster_watcher.pl, maillogs, and index.cgi are all installed in Perl's pod format (perldoc Mail::Toaster) as well as being available online at http://www.tnpi.biz/internet/mail/toaster/.

If you run ``make test'', you will likely get prompted to install any missing perl modules such as DBI and DBD::mysql. When prompted, choose no. The modules will get installed later.


Step 3: Edit config files

   vi /usr/local/etc/toaster.conf
   vi /usr/local/etc/toaster-watcher.conf

Edit to suit your preferences. Use 'perldoc toaster.conf' or 'perldoc toaster-watcher.conf' to read the man pages describing what all them settings are for.


Step 4: Start building the toaster!

   rehash
   toaster_setup.pl -s pre
   toaster_setup.pl -s ports
   toaster_setup.pl -s mattbundle (optional)
   toaster_setup.pl -s mysql
   toaster_setup.pl -s apache
   toaster_setup.pl -s phpmyadmin (optional)
   toaster_setup.pl -s ucspi
   toaster_setup.pl -s ezmlm 
   toaster_setup.pl -s vpopmail
   toaster_setup.pl -s maildrop
   toaster_setup.pl -s qmailadmin

NOTICE: The default install method is now ports (instead of packages). You can alter this in toaster-watcher.conf. This default was changed due to compatibility problems with some packages on FreeBSD's servers (notable MySQL and SNMPd). The flip side is that it's typical that at least one of the thousands of FreeBSD ports is broken. When you find a port that won't compile, try installing the package (ie. ``pkg_add -r expat'' ) instead.

If toaster_setup.pl has any problems running, fix what it complains about and then run it again. It will pick up where it left off.

If you want something installed ``your'' way, install it yourself. Toaster_setup.pl will detect it (assuming it's registered in the package database) and skip that portion of the install. Just don't act surprised when a toaster advertised feature doesn't work.


Step 5: Install Qmail

   toaster_setup.pl -s qmail

patch info: http://www.tnpi.biz/internet/mail/toaster/patches/


Step 6: Install Web/POP3/IMAP servers

   toaster_setup.pl -s courier
   toaster_setup.pl -s sqwebmail
   toaster_setup.pl -s squirrelmail


Step 7: Configure Courier-IMAP (optional)

Courier includes some generic settings in it's SSL config files (*d.conf). If you edit those files, you can have your own values reflected in your SSL certificates that are used the IMAP-SSL and POP3-SSL servers.

   cd /usr/local/etc/courier-imap
   vi pop3d.cnf imapd.cnf quotawarnmsg
   cd /usr/local/share/courier-imap
   ./mkimapdcert; ./mkpop3dcert


Step 8: Set up mail filtering and logging

   toaster_setup.pl -s filter

You can safely skip this step. However, all the spiffy anti-virus and spam detection software will not work. If this is your first mail toaster, you may even want to skip this step, get everything working to your satisfaction and then add in the mail filtering. It can be daunting for the faint of heart.

   toaster_setup.pl -s maillogs
   toaster_setup.pl -s supervise
   toaster_setup.pl -s rrdutil (optional)
   toaster_setup.pl -s qss (optional)


Step 9: Add cron entries

Run all these commands from the command line and verify their proper functionality (no complaints or errors) BEFORE adding to cron.

 crontab -u root -e 
 9-59/10 * * * * /usr/local/vpopmail/bin/clearopensmtp
 40  * * * *  /usr/local/share/sqwebmail/cleancache.pl
 */5 * * * * /usr/local/sbin/toaster-watcher.pl
 */5 * * * * /usr/local/www/cgi-bin/rrdutil.cgi -a update


Step 10: Test and Configure.

The following command runs a battery of tests.

   toaster_setup.pl -s test

It's output is quite verbose so you may want to pipe it's output through grep and look for any ``FAILED'' lines. If you have any, then you'll need to pay some attention to that area.

Visit this URL: http://www.tnpi.biz/internet/mail/toaster/config.shtml Skipping this step is guaranteed to make you less than pleased with your toaster.

See http://mail.cadillac.net/ for an example of index.cgi.