These instructions may change slightly with each version, so it is wise to read up on what's required each time before proceeding. Note that the configuration is slightly different in each version. You may wish to upgrade perl in conjunction with this since to do either requires disabling the processing of incoming e-mail to the e-mail server.
Information on running SpamD on Windows: SpamdOnWindows
Note: These instructions do not apparently work for SpamAssassin 3.4.1 using ActivePerl 5.20.2. ActivePerl now seems to force the use of dmake for Windows and some work will likely need to be done to make SpamAssassin compatible.
- Install or upgrade Perl if required:
If upgrading, make note of any modules you need to reinstall, uninstall ActivePerl and delete the /perl folder tree.
Download ActivePerl version 18.104.22.1687 from www.activestate.com.
- Install it.
Get nmake from Microsoft: http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe
- Extract the nmake.exe and nmake.err files into your /perl/bin folder
- Use PPM to install the required perl modules:
ppm install Net-DNS ppm install NetAddr-IP
- Use PPM to install the optional perl modules:
ppm repo add tcool ppm install DB_File ppm install Mail-SPF ppm install IP-Country ppm install Net-Ident ppm install IO-Socket-INET6 ppm install IO-Socket-SSL ppm install Encode-Detect ppm repo add bribes ppm install Mail-DKIM
If you want to build spamc, install Microsoft Visual C++ 6.0 or later. For instructions on getting a no-cost version see BuildSpamcOnWindowsForFree. When you build SpamAssassin use a command prompt in which the VC++ environment variables are set.
Download the SpamAssassin zip file from www.spamassassin.org
- Back up your settings if you already have it running.
Stop and disable SpamAssassin if it's running
Delete ~SpamAssassin directories, which may include:
- c:\perl\site\lib\mail\spamassassin.pm and spamassassin folder
- c:\perl\html\site\lib\mail\spamassassin or c:\spamdocs or whereever you put the docs last time
- From c:\perl\bin\, delete spamassassin.*, sa-learn.*, sa-compile.* and sa-update.*
- The following system environment variables may have to be set:
If you do not set this variable, SpamAssassin should use the first DNS server in your network configuration. That is useful when, for example, you move your computer between different networks and have DNS automatically assigned. If you experience problems with domain name resolution, try setting this variable to force SpamAssassin to use the specified nameserver.
extract the zip file (make sure your extraction tool is able to handle unix style files, WinRar is a good choice, IZArc IS NOT!)
- open command prompt and switch to your spamassassin source directory and type
- perl makefile.pl
- Answer the questions as they are asked. Remember you can NOT build spamc without a C compiler installed and its environment set up.
- nmake test (this is optional)
- nmake install
- Documentation should now be generated automatically by the install.
- Copy the backed up configuration files into the site configuration folder, probably c:\perl\site\etc\mail\spamassassin.
- Make a test folder. Copy sample-spam.txt and sample-nonspam.txt to that folder.
- Open a command prompt to that folder.
- Type sa-update --nogpgp
- Test the two files. Make sure they both run fine and the spam reports on each result file are appropriate.
spamassassin -D -t < sample-nonspam.txt > results-nonspam.txt
spamassassin -D -t < sample-spam.txt > results-spam.txt
Once it's installed, you can edit the local.cf file in c:\perl\site\etc\mail\spamassassin. You may want to visit http://www.rulesemporium.com and get extra rulesets. These rulesets should also go in the c:\perl\site\etc\mail\spamassassin folder. (This assumes you've installed activeperl in c:\perl as it defaults to. If you install it somewhere else, you'll need to adjust the path accordingly.)
Note: To use sa-update with GPG, download GPG for Windows, install it and add the 8.3 file path to your system path. The default path would be C:\PROGRA~1\GNU\GNUPG.
modified for 3.3.1 by DanielLemke