(Hide Sidebars) SpamPal for Windows
AmericanGerman

Quick Links
 
International Mirrors
 
Non-English
 
Search
 

History

1.73g 29th January 2006 (Beta Release)
  • Service configuration files:
    • New registry key: HKEY_LOCAL_MACHINE\Software\SpamPal for Windows\SpamPal\ServiceConfigDirPath can be used to set location of Service configuration data without affecting instances of SpamPal that execute as an application.
    • By default, new service installations now store configuration in "All Users\Application Data\SpamPal" rather than "LocalService\Application Data\SpamPal" - for existing users, the ServiceConfigDirPath registry key should get set automatically so your service still finds your old configuration. This should prevent the service configuration moving between LocalService and NetworkService folders occaisionally. (Thanks to George Breese for his great diagnosis of this problem!)
  • SMTP: On 'Verbose' or 'Extreme' detail level, logfile now records all RCPT TOs that weren't rejected by SpamPal as well as those that were.
  • Installer was putting wrong default data in "auto-whitelist exclusions" options window - fixed.
  • Auto-whitelist logging had become broken in 1.72i; fixed.
  • Transparent proixy:
    • Fixed bug when filtered and unfiltered socket handles were used in the same WSPSelect call; was notably causing crases in Thunderbird.
    • System error state was being corrupted when creating socket; fixed.
    • Was incorrectly trying to process returned fd_sets if WSPSelect returned an error; could potentially cause crashes. Fixed.
  • Should no longer crash if you try to terminate the same connection twice.
  • Played with connection-accepting code in attempt to solve crashes after hibernation.
  • Crash-reporting:
    • Disabled the "deadlock detection" as it frequently gave spurious results.
    • Can now use spampal.mc file to include function names in crash reports.
  • Now built using Microsoft Visual Studio 2003 toolkit.
1.73c 10th November 2005 (Beta Release)
  • Was using 100% of CPU on Windows NT 4; fixed.
  • Could crash because windows messages were being processed early if an modal message box or dialog was opened by the initialisation routines - fixed.
  • Transparent proxy:
    • WSARecvMsg function was returning sucess code on failure and failure code on success! Fixed.
    • Could crash if filtering was re-initialised while a Select was active on the same socket; fixed.
    • In some circumstances, non-Windows-XP machines couldn't uninstall transparent proxy due to missing WSCUpdateProvider function; fixed.
  • Some McAfee transparent proxy or other can't handle setsockopt being called on a socket handle while same socket handle is in closesocket - which can happen if a closed socket handle is quickly re-used! Implemented work-around for this bug.
  • For non-transparent filtered sockets, no longer sets output buffer size to 0.
  • POP3: In some circumstances, could overflow buffers when handling LIST and STAT commands; fixed.
  • Plugin initialisation status message used plugin code not plugin name - fixed.
  • Altered underlying collections code; should prevent code compiling with certain bugs.
1.73 24th October 2005 (Beta Release)
  • Logfiles:
    • Wasn't correctly spacing logfile entries - fixed. (v1.72y)
    • Logfile entries weren't always in correct order when prefetching was used; fixed.
    • IMAP4 messages that involved prefetching were sometimes not appearing in the logfile! Fixed.
  • Transparent proxy:
    • FIXED serious problem that caused lots of crashes in Internet applications! (v1.72z)
    • Fixed silly bug that was preventing OE (among other mail programs) from correctly closing a filtered socket (v1.72z)
    • Replaced unreliable _vsnprintf function with custom-written safe version. Fixed several other buffer overflows and memory errors. (v1.72y)
    • No longer links with MSVCRT.DLL (v1.72y)
  • Misc:
    • Could read past end of command-line buffer, causing a crash - fixed. (v1.72y)
    • Fixed obscure crash when using non-transparent ports if there were no port settings to handle an incoming connection (v1.72z)
    • Can no longer report WSAEINVAL errors when closing socket.
    • Changed how progress numbers for IMAP4 prefetch threads are displayed in the status window. Still doesn't make much sense though...
1.72x 17th September 2005 (Beta Release)
  • Fixed serious crash in WSPSetSockOpt when using traditional connections to SpamPal whilst transparent proxy was enabled.
  • Fixed a couple of crashes in startup due to Windows events getting handled too early.
  • Transparent proxy: Now links with MSCVRT.DLL in the hope this'll help stop weird crashes in Microsoft heap-allocation functions. I think this DLL is supplied with all versions of Windows but if you encounter problems, let me know!
1.72v 13th September 2005 (Beta Release)
  • Mostly a bug-fix release - and again my sincerest thanks to everyone who's been helping to test it.
  • User Interface:
    • Fixed crash when cancelling "choose port settings" when running as Windows service
    • Tray icon action wasn't been set for fresh installs; fixed.
    • Tried to stop port properties dialog from "blinking" when opened.
    • Some old-style status window configuration files weren't being parsed correctly; fixed.
    • Added more protection to prevent configuration window crashing after it's closed.
    • The "Application or service?" dialog you sometimes see just after install could cause all kinds of weirdness if the installer had rebooted your machine - fixed.
  • Mail filtering:
    • Now removes any pre-existing (and possibly forged) X-SpamPal: header lines.
  • POP3:
    • Fixed crash in prefetching
    • Now supports CAPA (ie "Capabilities") command.
    • Fixed unlikely buffer overflow when processing malformed LIST response.
  • IMAP4:
    • Fixed crash in prefetching
    • Fixe crash when parsing a malformed FETCH response.
    • Fiddled with removal of \Seen flags from moved spam messages.
  • SMTP:
    • When adding SMTP connection settings for transparent proxy, "Add Received header:" option was activated and could not be deactivated. Fixed.
    • Uninitialised string could occaisionally cause problems when rejecting an incoming message for an unusual reason; fixed.
  • Public blacklists/DNSBLs:
    • Fixed buffer overflow that was causing crashes.
    • Where supported, now uses Microsoft's DNSAPI.DLL for DNS queries; no longer supports getaddrinfo method.
    • Hostname lookups (ie from the UrlBody plugin) weren't appearing in Verbose-level logfile when they were fetched from the cache; fixed.
    • No longer does hostname lookups for w3.org and several other frequently-used domains (you can replace this default list of domains to ignore by creating a file ilist_hostname.dat in SpamPal's configuration folder - for the file format see the default_ilist_hostname.dat file that ships with SpamPal)
    • Fixed issue where multiple public blacklist entries were querying the same underlying resource; previously only the first such blacklist you had selected would actually get queried. (This became an issue because the recent updated list of public blacklists uses zz.countries.dk zone for most country lookups.)
  • Transparent Proxy:
    • No longer corrupts system error number if crash-trapping turned on; fixes problem with VMWare NAT service.
    • Could crash when unloading transparent proxy DLL while LSP logging feature is activated; fixed.
    • Transparent proxy should now fire async events for filtered connections correctly.
    • Was occaisionally failing to signal FD_READ events after several WSAEventSelect calls - fixed. Should fix further problems with VMWare NAT proxy.
    • Could occaisionally get into a pointless loop of read-notifications on filtered sockets; fixed.
    • Implemented work-around for "interesting" design of Etrust Antivirus.
    • Implemented protection against socket objects being deallocated in one thread whilst still active in another - should fix lots of crashes.
    • Was occaisionally losing the last few bytes of a mail session (generally the 'QUIT' command) - fixed.
    • Should now be a little quicker to establish new SpamPal-filtered mail sessions.
  • Misc:
    • Uninstaller program could try to re-init Winsock2 and crash; fixed.
    • Update-checking now integrated into spampal.exe rather than a separate updates.dll (which can be deleted).
    • Update-checking now uses latest zlib1.dll and not old zlib.dll, which some anti-spyware packages bizarrely continue to complain about.
    • Windows Service version should no longer create events will illegal names on Windows NT
    • No longer performs housekeeping (update-checking and other sundry jobs) if there are any mail sessions active.
    • Now writes to logfile when system is detected entering & leaving standby mode. Tried to eliminate WSAENOTSOCK errors some people see when their machine comes out of standby mode or hibernation.
    • Upgrading configuration from pre-v1.63 had become broken at some point; fixed.
    • No longer supports importing configurations from pre-v0.05 - I'm sure nobody is still using such an ancient beta-version anyway!
    • Low-level I/O code rewritten; now more flexible for me and shouldn't be any difference from a user's point of view.
    • Now uses an ultra-safe snprintf function as I'm not 100% sure the standard Windows one doesn't cause buffer overflows.
  • Crash reporting:
    • Crash reports now include more detail
    • Service now sleeps briefly after a crash - should fix problem of GUI being killed before crash dialog could appear.
    • Fixed bug that was preventing transparent proxy crashes from being reported.
    • Single crashes should no longer cause multiple crash dialogs.
  • Debugging versions:
    • When trimming LSP logfiles, no longer shows an error if C:\SpamPalDebug\lsp is empty.
  • Source code:
    • SpamPal version number now set correctly when building with Microsoft Visual C++.
1.72g 22nd May 2005 (Beta Release)
  • My thanks to everyone who's helped to test intermediate versions since the last released beta.
  • New Features
    • When SpamPal crashes, users now have the option to automatically send a report to the developer.
    • New option in "Appearance" screen to not show SpamPal icon in system tray
    • You can now choose to add the X-Padding: header at the top or at the bottom of the message headers.
  • Mail Filtering
    • Local blacklistings were being overridden by positive DNSBL query results - fixed.
    • Spam was sometimes wrongly let through if one or more ignorelists of providers were selected - fixed.
    • SpamPal was reporting it supported certain IMAP4 extensions when it doesn't - fixed.
    • POP3 & SMTP: Wasn't correctly implementing the part of the RFCs regarding doubling the termination octet if it appeared at the start of a line containing data. Fixed.
    • Body-filtering was not being performed if any enabled plugin had failed to load; fixed.
  • Transparent Proxy
    • Fiddled with code to prevent lsass.exe going haywire after coming out of hibernation.
    • SpamPalLSP.dll no longer calls OpenThread() - this function is not supported on Win9x and was preventing transparent proxy from loading on this OS!
    • Tweaks to how "data available to read" messages are sent by transparent proxy
    • Fixed problem with Layered Service Provider not always installing transparent proxy correctly following a fresh install of SpamPal.
    • Rewritten overlapped-operation-handling code - should be more robust now.
    • Increased period of time transparent proxy will spend waiting for shared resources to become free - might help alleviate the problem of occaisional mail fetches being "missed" by SpamPal.
    • Transparent Proxy: More tweaks to how events are retained & discarded when WSPEventSelect is called a second time when there are unfetched events known. This seemingly innocuous code has caused lots of obsure, hard-to-track-down bugs.
    • Was hanging when the application tried to close a socket that was still being filtered by SpamPal; fixed.
    • Added support for the following Microsoft Winsock extensions: WSARecvMsg, TransmitPackets, ConnectEx, DisconnectEx
    • Rare set of circumstances could result in SpamPal reading more data than it should and corrupting input stream; fixed
  • Update-checking
    • SpamPal update-checking will now only tell you about new versions of plugins that you have installed - it will no longer tell you about new plugins that are released. (This was broken and frequently advised new users to install all plugins, even though it shouldn't have.)
    • Tweaks to update-checking routine.
  • Installation/Initial Setup
    • The settings you configure from the Welcome window are now only saved when you click "Finish".
    • LSP install progress window now scrolls to always show the bottom line.
    • Programs menu group should now get created in All Users menu where appropriate (if installed by Windows NT administrator account and group doesn't already exist in user's programs menu).
  • User Interface
    • Added a keyboard shortcut to options window to switch focus to tree of options screens.
    • When prefetching, a second row will appear in the status window giving information on the state of the prefetch thread.
    • Resolved mailserver name should appear in prefetch row of status window rather than I.P. address.
    • Should no longer auto-open status window at startup if you've ended up with two SpamPal shortcuts in your startup group.
    • Now tries to recreate SpamPal tray icon after Windows 2000/NT/XP startup completes - might help those for whom the SpamPal tray icon doesn't get created.
    • "Interface" screen of options window renamed "Appearance"
    • New option in "Appearance" screen to not create status window rows for prefetch threads.
    • Modified method by which some parts of the status window are updated; should be slightly more efficient now.
    • Fix: Possibly fixed the cause of the occaisional annoying crashes when closing the configuration dialog
  • Misc
    • When you created a transparent proxy SMTP port in SpamPal, the unused relay permissions lists got filled in with "(null)". Fixed.
    • Should now output an error message if a plugin fails to load.
    • Fixed very obscure bug that sometimes caused SpamPal to freeze up entirely if configuration was reloaded while messages were being filtered.
    • Fixed v.small memory leak in options window validation code.
    • Fixed v.minor buffer overflow in auto-whitelist-logfile-updating code.
    • More code changes to make it easier for me to add new configuration settings.
    • SpamPal should no longer crash if it encounters a corrupted hostname lookup file or auto-whitelist-pending-data file in its configuration folder.
    • Upgrades from pre-v1.70 had become broken at some point - protocol was getting reset to "POP3" for all configured ports. Fixed.
    • Application wouldn't run at startup if a SpamPal service was configured for manual start; fixed.
    • Fix: GUI client wasn't correctly detecting service during startup, and was starting as application instead.
    • Old-style (specific servername & multiple servername) ports should now continue to work after adding/removing SpamPal layered service provider, without the need to restart SpamPal to get them going again.
    • POP3: Sometimes crashed at end of session because session info was deallocated before status row deleted; fixed.
    • No longer performs housekeeping operations more frequently than once every five minutes.
    • Will use getaddrinfo() function on Windows XP rather than gethostbyname()
    • Made changes to DNSBL thread synchronisation in an effort to guard against deadlock.
    • Now contains assertion code to log suspected failures (debug-logging build will abort if an assertion fails).
    • Removed small memory leak from new-LSP-connection handler on SpamPal side of things.
    • Includes code to automatically detect deadlock bugs.
    • No longer possible for two threads to be conducting housekeeping operations at the same time.
    • Threads were sometimes getting blocked because critical section was held by low-priority housekeeping thread. Fixed.
    • When GUI client crashes, should no longer complain about trying to access the logfile as well!
    • Should hopefully no longer report "Filing error (no error)" when opening protocol logfiles when lots of mail sessions all start at once.
  • Plugins
    • A couple of plugin API calls weren't locating decorated function names as expected - this led to weird effects like some plugin version numbers appearing in the options dialog but not in a crash report. Fixed.
    • Now outputs a warning if you try to run the Bayesian plugin with the SpamPal service.
    • Status window now displays when plugin is being initialised (fetchStart or sessionStart)
    • Plugin API additions: "PluginCapabiltiesEx" structure and "getPluginCapabilitiesEx" function can be used instead of "PluginCapabilities" and "getPluginCapabilities" - these allow plugins to opt-out of prefetching.
1.71d 24th January 2005 (Beta Release)
  • Minor version numbers are now of the form "v1.71a" rather than "v1.711".
  • New option under "Message Tagging" allows you to choose to place SpamPal headers above or below the existing headers.
  • New option to delete old protocol logfiles.
  • New option in POP3 port properties to disable the "X-Timeout-Prevent: Yes" headers.
  • New option in POP3 port properties to make SpamPal use X-Padding: headers to pad message headers, rather than adding lots and lots of spaces.
  • RDNS queries withing SpamPal for 127.0.0.1 now always return "localhost" - should prevent confusion for people who have aliased other sites to 127.0.0.1 in their 'hosts' file.
  • DNSBL queries will no longer be made for I.P. address 0.0.0.0
  • More bug-fixes to the way DNSBL queries are handled.
  • The "Log communications between SpamPal and server" option was sometimes being forgotten and confused with the "Log communications between SpamPal and client" option.
  • More body data was being fetched if a plugin required it at the processedMessage stage even if the plugin wasn't being used because a message was tagged as spam or whitelisted. Fixed.
  • Messages in IMAP4 mailboxes were being marked as read if they were filtered by a plugin that demanded more message body at the processedMessage stage. Fixed.
  • Could crash at end of IMAP4 message filtering - fixed.
  • SMTP EHLO response now sent all in one packet (previous method was perhaps confusing OE).
  • Fixed unlikely crash in opening of "add to black/whitelist" dialog (I hope)
  • When session ends, writes session logfile to logfile path last given in options dialog (not path that was last given when session started)
  • Removed quotes from example in "help specifying email addresses" dialog in case people get confused and think email addresses need to be in quotes in the blacklist/whitelist.
  • Modified generation of crash-reporting code. Crash reports now include version numbers of all loaded plugins.
  • The "LSP Install Progress" window now always stays on top of the pile
  • Transparent proxy bugfixes:
    • The SpamPal transparent proxy no longer modifies the value returned by GetLastError() where it shouldn't. (This was causing the problem with Sophos EM Library.)
    • Fixed issue that was causing problems with SmartFTP if SpamPal transparent proxy were used.
    • If a process set up an async select, then unloaded the transparent proxy DLL, then loaded it again, then tried to set up another async select, it would hang. Fixed.
    • For connections filtered with the transparent proxy, the final command would sometimes not be sent to the server - fixed.
    • Socket handles returned by the SpamPal LSP are now inheritable. HOWEVER, note that if the child process uses DuplicateHandle on socket handles, although the function returns value, calling Winsock functions on the duplicated handle doesn't work. Don't blame me, blame Micro$oft; it's their bug and I can't see a way I can work around it. (Well, Micro$oft say that people writing the client software should use WSADuplicateSocket instead of DuplicateHandle, and I can see their point, but lots of people don't - the example I came across was the FastCGI library - and if the value returned by DuplicateHandle can't be used then DuplicateHandle should fail IMHO. So either way, I still blame Micro$oft.)
    • No longer calls completion routine if overlapped operation terminates with error WSAECONNABORTED - this error seems to get thrown if CancelIO is called, and the lpOverlapped value may by this point be not valid. (This was crashing Oracle.)
  • Some minor reorganisation of source code.
1.704 21st December 2004 (Beta Release)
  • Transparent proxy was returning wrong result from WSPIoctl(FIONREAD) for filtered sockets - this caused problems for Datula (and maybe other programs too). Fixed.
  • Installer should no longer moan about being unable to create certain debugging shortcuts.
  • Transparent proxy was occaisionally duplicating areas of messages filtered through SpamPal - this seemed only to happen for certain messages and certain anti-virus tools. Fixed.
  • The "ignorelists of providers" were not always being honoured - fixed.
  • Slight modification to way SpamPal checks to see if a SpamPal service is already active.
  • Fixed bug in way transparent proxy handles asynchronous select operations when accepting new connections.
1.70 10th December 2004 (Beta Release)
  • New Transparent Proxy feature - click here to learn more
  • Mail filtering:
    • New option to not call certain plugins if message already marked as spam/whitelisted; should improve performance if you only call slow plugins when necessary.
    • For POP3 and IMAP4 sessions, SpamPal will now pre-fetch messages to improve performance. (It already did this for POP3 sessions under certain circumstances, but now everyone can benefit!) This can be disabled from the port properties dialog.
    • Wasn't starting POP3 prefetching whilst body-filtering was in progress; fixed.
    • Prefetching of POP3 headers wasn't working for the last message in your inbox; fixed.
    • Fixed rare buffer overflow in POP3 code.
  • User interface:
    • More tweaks to the way status window handles saving column sizes.
    • You can now enter hostnames as well as IP address and Netblocks in the blacklist & ignorelists of netblocks, the access control list, and anywhere you could previously enter a list of I.P. addresses/netblocks.
    • When selecting "run spampal" from installer, no longer gives error message if SpamPal service already running.
    • Added informative messages to "add to blacklist" and "add to whitelist" dialogs. (Advice on the best way to lay out these windows would be appreciated, as I think they look rather ugly right now!)
    • New option in the Interface pane allows you to deactivate SpamPal's checking that status window is always on main desktop - implemented because I found I couldn't make it open the status window on my new second monitor. :(
    • Tweaked layout of Plugin pane of options dialog (thanks Steve!)
    • Added 'donations' page to options window
  • Blacklist querying:
    • Was recording some DNSBL result codes as negative values in logfile - fixed.
    • Hostname lookups are now cached for a few hours; should give a minor improvement to UrlBody's speed when you receive lots of spam advertising the same thing.
    • Fiddled around with DNSBL query multi-threading to hopefully make it yet more efficient.
    • New option on the "Advanced" pane to make SpamPal wait for all DNSBL queries to complete before starting to filter the message body.
  • Windows Service support
    • GUI client may now start slightly faster.
    • GUI client wasn't always exiting properly if it failed to log into the service; fixed.
    • Changed way temporary folders are named by GUI client.
  • Misc:
    • Converting config files from one language to another had become broken; fixed.
    • Update-checking doesn't inform you of new beta-releases just because it thinks you're using a beta.
    • Should now start up very slightly faster.
    • Fixed thread handle leak that'd crept into recent betas.
    • Logfile now reports when SpamPal attempts APOP authentication
    • New "Protocol logging" screen of the options window; allows you to create protocol-level logs of your mail sessions, which will be useful for debugging purposes. (Previous debugging versions already did this, but I've removed that code from the latest one.)
    • For debug-logging releases, two new registry keys allow you to turn debug-logginglogging on/off and set debug-logging folder.
    • Now doesn't try to call the unsupported function TryEnterCriticalSection if SpamPal crashes on a Windows 95/98/ME machine.
  • Source code:
    • Recent versions of lcc-win32 seem to have changed the values they returned from vsnprintf - this could result in truncation of some configuration files when SpamPal was running as a service. Updated Spampal code to avoid this.
1.641 8th September 2004 (Beta Release)
  • Fixed bug that was still causing plugins to complain incorrectly that you were using an old version of SpamPal.
  • Service version was giving an impenetrable "SetEntriesInAcl" error on startup in some non-English locales; fixed.
1.64 5th September 2004 (Beta Release)
  • "Progress" column of status window no longer blanked between message fetches.
  • IMAP4:A bug in Microsoft Exchange's implementation of IMAP4 causes messages to be corrupted after they're rewritten by SpamPal if they use anything other than a tab as a line continuation character in the headers. SpamPal should now detect Microsoft Exchange and turn all line continuation characters into tabs if it's rewriting a message, to get around this bug.
  • IMAP4: No longer displays "Mailbox does not exist" error in pop-up dialog
  • When running as a GUI client, now updates LastConfigDirPath registry key with the path of the configuration folder being used by the service.
  • Now only calls setlocale to set time-formats - not numeric formats too! Might hopefully end problems with plugins mis-reading SpamPal version number.
  • Now sets the number of bytes to read to a default value if ioctl(FIONREAD) gives a value of -1; this was what was causing crashes at the stage "filtering message headers".
  • Changed some of the default values - by default, filtering stats are now retained for last 28 days rather than 7, and only the first 16k of message bodies are filtered.
  • Now outputs a warning message if it detects a version of HtmlModify older than v1.221 (as older versions contain the above problem with pipes being closed that shouldn't be).
  • Plugin API:If a plugin closes the input pipe to filterOnMessageBody, rewriteMessageBody or processedMessage, an error is displayed. Plugin must not close these pipe handles as SpamPal will try to do so later, and if it's already closed the pipe handle may have been re-used, which can result in the wrong pipe being closed, which can have unpredictable effects - up to and including data being lost!
  • If a filing error occurs before the SpamPalMessageBox system is setup, a standard message box will be generated.
1.634 3rd August 2004 (Beta Release)
  • The old "port type" setting ("POP3 (specific server)" and so forth) has been split into two - there's now "Protocol" (POP3, IMAP4 or SMTP) and "Proxy type" (Specific server, Multiple servers and Transparent). "Transparent" proxies are not yet supported but will be in a future version.
  • Now lists all results returned by DNSBL queries in logfile - was previously listing just one result code per query, which caused confusion when that result code wasn't in the DNSBL definitions, yet others returned by the query were.
  • Removed restriction on some plugin filtering functions being called concurrantly; should give a performance increase when you've got several active sessions all fetching mail concurrantly.
  • Now automatically removes spurious "English" entries from the auto-whitelist (these were created by a bug in an earlier version)
  • Wasn't saving SMTP relay permissions and a few other files correctly when running as an application - fixed.
  • If an empty SMTP relay permissions file is detected on a user upgrading from an earlier version, the SMTP relay permissions file is populated with 127.0.0.1 - should fix most problems where this file was corrupted by above bug.
  • Service support:
    • Fixed error in client-service "plugin not available/wrong version" login errors messages.
    • -serviceServer command-line option is no longer case-sensitive
    • When stopping service, now waits for service to shut down before exiting
    • Low-level tweaks to improve communication between client & service
    • "Exit and stop service" option now works when SpamPal client and service are on separate machines.
    • When client is accessing a remote SpamPal service, the client-service pipes will be reinitialised when the client machine comes out of hibernation. (But I've had difficulty testing this as I couldn't coax my machine to hibernate!)
    • The "About" and "Options" dialogs now display when the SpamPal GUI client is running on a different machine.
    • GUI Client wasn't displaying recent changes to auto-whitelist and auto-ignorelist - fixed.
    • Could become deadlocked after an automatic updates-check in certain circumstances - fixed.
  • Changes to underlying network-access code, notably the way the IMAP4 proxy waits for data to become available. Might make it slightly more efficient.
  • Would crash if an accept() call failed - fixed.
  • In SMTP, messages now transmitted in chunks of 64k rather than 16k.
1.623 6th July 2004 (Beta Release)
  • Auto-whitelist entries will no longer be overwritten with the word "English" when you close the options window.
  • Was getting into an infinite loop if you tried to remove something from the auto-whitelist; fixed.
  • Fixed bug that was causing SpamPal to close some sockets just after they were created - probable cause of the problems with SpamPal not working after you come out of hibernation, and sometimes not being able to connect after you start up, etc.
  • Fixed bugs that could cause service and/or client to hang at certain times.
  • Fixed bug that could cause SpamPal to crash during the clean-up at the end of a mail fetch.
  • Now strips email addresses beginning or ending with @ from the auto-whitelist, and also won't detect such addresses.
  • Fixed bug that could cause a crash when opening options dialog if no plugins installed.
  • Now runs as a GUI client rather than an application when the -serviceServer command-line option is used.
  • Welcome dialog can now prompt the user to choose a folder from which to import an existing SpamPal configuration into the service.
  • Welcome dialog now includes a "back" button.
1.62 3rd July 2004 (Beta Release)
  • Note that v1.62 was developed from v1.53, not any later releases of the v1.5x series.
  • Can now run as a Windows Service! Click here for more details!
  • User Interface:
    • Added keyboard shortcuts to all menus (English translation only).
    • Added ellipsis (...) to buttons that open new dialogs.
    • Now opens status window if you try to start SpamPal when it's already running.
    • Tray icon now re-created when you try to run a second instance of SpamPal client/application
    • Plugin windows (eg Bayesian reclassify window) can now be accessed from the status window's "Tools" menu as well as the tray icon menu.
  • POP3:
    • New options in "advanced" POP3 port properties dialog allow you to disable padding of headers and/or the "this message has grown too big due to a bug in a plugin" message (which is now disabled by default).
  • Networking:
    • Now always reports servername resolving errors, even for error 0.
    • If unable to connect to server, now keeps retrying for 3 seconds (as it does if unable to resolve) - should help problems with certain firewalls detecting spampal.exe has changed and SpamPal giving up before the user has a chance to OK the changed file.
  • Installer:
    • Installer creates "Startup" shortcut in All-Users startup folder (instead of current user's startup folder) if installing user has admin rights and this is a first install.
  • Registry Keys:
    • SpamPal's configuration folder can now be set using the following registry keys (listed in descending order of priority):
      • HKEY_CURRENT_USER\Software\SpamPal for Windows\SpamPal\ConfigDirPath
      • HKEY_LOCAL_MACHINE\Software\SpamPal for Windows\SpamPal\ConfigDirPath
    • Last configuration folder used by SpamPal now stored in registry at HKEY_CURRENT_USER\Software\SpamPal for Windows\SpamPal\LastConfigDirPath (This value isn't read by SpamPal, but may be useful if third-party tools need to get at the SpamPal configuration data)
  • Command-Line Arguments:
    • -allow_multiple_instances command-line parameter works as before. However, -suppress_multiple_instances_warning has been deprecated (but if used, prevents the status window from opening).
    • New command-line option -open_options_window automatically opens the SpamPal options window on start-up
  • General changes:
    • Crash messages now include a stack trace (thanks c2j2!)
  • Plugin API:
    • There's a new, different function for checking your plugin will work on the current version of SpamPal - required if you want this check to happen when SpamPal is running as a service!
    • Implements several new functions you can use to optimise your plugin's user-interface when SpamPal is running as a service.
    • New "direct" versions of filterOnMessageBody, rewriteMessageBody, rewriteMessageHeaders and processedMessage plugin functions should be slightly more efficient than the regular versions.

1.594 24th October 2005
  • Includes Danish translation
  • Now uses latest version of ZLib compression library; should fix problem where some anti-spyware tools were wrongly deleting SpamPal's zlib.dll.
  • Multiple 'Country' blacklists weren't working together since the blacklists listing update last month; fixed.
  • SMTP: EHLO response sent all in one packet (previous method could sometimes confuse OE).
1.591 14th January 2005
  • Fixed two further bugs in handling of public blacklist queries, which had led to more spam getting through in v1.588.
  • SpamPal could crash during filtering if a plugin had failed to load; fixed.
  • Includes updated French translation.
1.588 21st December 2004
  • Ignorelists of providers were often not getting honoured; fixed.
  • Now includes Stark Wong's Traditional Chinese translation - AT LAST!
1.583 3rd October 2004
  • Owing to popular request, I've removed the "an email message which should have been no more than XXX bytes has size YYY bytes" error message.
  • Fixed a couple of incorrect menu items in the Russian translation (thanks svy!)
  • Tweaked the update-checking code to hopefully eliminate an obscure bug that could cause SpamPal to incorrectly advise the user to install every plugin available.
1.581 9th September 2004
  • Fixed bug that was still causing plugins to complain incorrectly that you were using an old version of SpamPal.
1.58 3rd September 2004
  • Fixed issue that had suddenly started causing crashes, usually at the "Filtering message headers" stage - this may have been exacerbated by Windows XP Service Pack 2.
  • The installer had somehow become broken, and wasn't creating the shortcut in the Startup group correctly, which meant SpamPal wasn't automatically running at startup - fixed.
  • Hopefully fixed bug that caused plugins to claim that they needed a "later" version of SpamPal when it was already installed.
  • IMAP4: No longer displays "Mailbox does not exist" error in pop-up dialog
  • IMAP4: A bug in Microsoft Exchange's implementation of IMAP4 causes messages to be corrupted after they're rewritten by SpamPal if they use anything other than a tab as a line continuation character in the headers. SpamPal should now detect Microsoft Exchange and turn all line continuation characters into tabs if it's rewriting a message, to get around this bug in some cases.
  • Tweaked some of the default settings to hopefully improve performance for new installs.

(Note that the v1.6x code-base was separated from v1.5x before the release of this version - changes in v1.58 were not present in v1.6x until v1.64.)

1.57 3rd July 2004
  • Should now crash less if some of the configuration files are corrupted

1.56 23rd June 2004 (Beta Release)
  • Now includes Keith Every's setup wizard
  • IMAP4: Was doing too many commands after entering a folder for the first time - fixed.
  • IMAP4: No longer sends more than 10 FETCH responses to client in one go - seems to stop Outlook crashing.
  • (Hopefully) now won't report "error 0" back to client for some connection errors.
  • Made change to prevent some crashes if auto_wlist_ip_pending.dat is corrupted
  • IMAP4: Now supports IDLE command (although doesn't announce this in CAPABILITY response) - necessary because some clients (Mozilla?) are using the IDLE command even though SpamPal doesn't report it as supported.

1.55 24th May 2004 (Beta Release)
  • Wasn't filtering correctly on Return-Path: headers - fixed.
  • Fixed bug in handling of email addresses containing high-bit characters that caused crashes when Windows is configured to certain Far East locales.
  • Fixed possible bug in matching of wildcarded email address patterns
  • POP3: Could merge first line of message body with message headers if TOP n 0 command didn't include a blank line to terminate the headers; fixed.
  • SMTP: Could crash during processing of SMTP EHLO if a network error occurred before the response was received; fixed.
  • No longer crashes while expiring v.long pending entries from auto-whitelist records
  • Worked around a bug in Windows 2000 (and others) that can cause spurious "No buffer space available (system resources low)" errors.
  • Now retries if it encounters a spurious WSAEWOULDBLOCK, which should work around another bug in Winsock
  • Keyboard shortcuts RETURN/ENTER and ESCAPE should now work in the "are you sure you want to exit SpamPal?" message

1.54 2nd May 2004 (Beta Release)
  • IMAP4: Finally fixed silly bug that was causing very annoying crashes when using the IMAP4 proxy for new accounts.
  • IMAP4: Could give silly warning message with 0-byte literals; fixed.
  • User Interface: Add to Whitelist dialog can now extract an email address from square brackets [ ] as well as angled brackets < >
  • User Interface: Wasn't creating wlist_email.dat and blist_ip.dat when installed, so displayed an error if you tried to use the "add to whitelist" dialog without ever having opened the options window and clicked OK. Fixed.
  • User Interface: Fixed bug in how SpamPal & plugin version numbers are parsed in locales where a period is not a decimal separator. (Should fix issue with inaccurate "this plugin needs a more recent version of SpamPal" and "you need to install this update" messages.)
  • Plugin API: Fixed bug in POP3 code that could result in message bodies being lost if client did TOP/RETR and a plugin returned a non-zero value from minBodyBytesRequired at FILTERING_STAGE_START.

1.5391 10th April 2004 (Beta Release)
  • Date & time in logfile and SMTP Received: header now calculated using Win32 rather than ANSI C functions; previous code wasn't working for Australians (and possibly other localities).

1.539 9th April 2004 (Beta Release)

A few more bugfixes; sorry for the delay:

  • "Add to whitelist" dialog can now extract an email address from within angled brackets - so if you copy-and-paste an entire From: line into it, it'll whitelist the email address.
  • "Add to whitelist" dialog could not add netblocks to ignorelist if they had a comment - fixed.
  • Now reports "spampal is already running" message correctly.
  • Fixed error that was causing crashes when using IMAP4
  • Some plugins weren't getting unloaded as they should; fixed.
  • Includes some bugfixes to the German language file.

1.538 8th March 2004 (Beta Release)

A few more minor bugfixes:

  • No longer reports "SPAMCOP DNSBL not found" error on start-up.
  • Now uses scanf rather than atof to read in status window bar positions - should hopefully fix problems with locales that use a comma as a decimal separator.
  • Default action for clicking on the tray icon is now to open the status window rather than do nothing
  • IMAP4: "Can't append to folder" error was displaying folder name instead of error message; fixed.
  • IMAP4: Could crash when faced with an entirely empty message body; fixed.
  • IMAP4: Could crash when re-loading modified configuration during IMAP4 session; fixed.
  • No longer unloads HtmlModify plugin during shutdown (as unloading HtmlModify can cause a severe delay under some circumstances, because it's linked with wininet.dll)
  • Now outputs correct error dialog if it crashes during a DNSBL query thread.

1.53 14th December 2003
  • POP3:
    • Was fetching message twice when a plugin requested entire message for processedMessage; fixed.
  • IMAP4:
    • SpamPal was sometimes messing up the flags of old messages - fixed.
    • No longer crashes if STATUS doesn't return expected UIDNEXT response.
    • Now accepts literal strings correctly in STATUS response.
    • Fixed bug that caused occaisional crashes when main configuration was changed in mid-session.
  • SMTP:
    • Fixed bug that sometimes caused relay permissions to get lost when another port was deleted.
    • v1.52 was crashing when mail was rejected; fixed.
    • Inactive sessions should now time out after an hour or so.
  • Misc:
    • Update-checking can now handle letters in plugin version numbers, e.g. v1.07f
    • Access control list file now deleted when the corresponding port is deleted.
    • Illegal null characters in message headers are now replaced with '0' - should fix bug that was causing SpamPal to hang when faced with malformed headers containing nulls.
    • Should now give less "No error" filing errors.
    • New debugLogf hook in plugin API allows plugins to write to the debugging logfile.
1.52 12th October 2003 (Beta Release)
  • User-interface:
    • "SpamPal has crashed" error description can now be copy-and-pasted.
    • Now informs user of any newly-installed plugins and gives the option of enabling them.
    • Additional validation in "Add to Blacklist" and "Add to Whitelist" dialogs
    • In the "Add to Blacklist" and "Add to Whitelist" dialogs, when entering an email address or email address pattern, it now checks to see if the address or pattern is already blacklisted/whitelisted. (NB doesn't check any "extra" black- or white-list files you may have confighured.)
    • "Add to whitelist/blacklist" dialog now converts '#' into '*' if not prefixed by whitespace - should help people who get into trouble trying to whitelist email addresses that contain a #.
    • Can now configure left-clicks on tray icon to open Bayesian plugin window (or the window of any other plugin that has such a window.)
    • Changed way status window reads column widths, and makes itself maximised, which should hopefully help some people for whom it wasn't working.
  • POP3-specific:
    • No longer pads header lines X-MS-TNEF-Correlator and X-MimeOLE: This fixes problem with some attachments from Outlook appearing as "winmail.dat".
    • The logfiles could become confused when messages are prefetched, with lines of output appearing in the wrong places and getting associated with the wrong messages. Fixed.
  • IMAP4-specific:
    • Was a problem with the new "filter only one folder" option in "specific server" type IMAP4 ports when upgrading to v1.51. Fixed.
    • Can now configure SpamPal not to bother comparing headers of messages (and thus risking missing duplicate spams).
    • Changed to the configurations should now take effect for IMAP4 sessions without you having to restart SpamPal or your email program.
    • Was refusing to connect to I.P. addresses that didn't have RDNS! Fixed.
    • Should no longer crash if the server sends an EXISTS response when not in a folder.
    • No longer pops up an error box if a FETCH command returns an error
  • SMTP-specific:
    • Can now configure SpamPal to permit all relaying regardless of client IP if host has performed successful ESMTP authentication. (UNTESTED - someone please let me know if this does or doesn't work!)
    • Could crash if you chose "NO" in reply to the "Your SMTP port does nothing - are you sure this is what you want?" question. Fixed.
  • Misc:
    • Should no longer hang if it encounters corrupt auto-whitelist-pending data.
    • Fixed minor bug that could make some email addresses get incorrectly removed from the auto-whitelist pending file when others expired.
    • Should no longer be possible to crash SpamPal by giving it a really-long servername
    • Fixed bug that sometimes caused SpamPal to freeze up if you changed the configuration while it as filtering messages.
    • When looking for email addresses, now obeys RFC-2822 better.
    • 255.255.255.255 wasn't been accepted as the end of a range of I.P. addresses - fixed.
    • SpamPal wasn't always asking the right plugins how much body they needed for the processedMessage event - fixed. (this bug occaisionally caused crashes in IMAP4.)
  • Plugin API:
    • Plugins can now output information to the main logfile.
1.51 16th September 2003 (Beta Release)
  • User-interface:
    • "Recent DNSBL queries" area of status window now includes the average time SpamPal had to wait for a response from each DNSBL.
    • Should no longer be possible for status window to end up off-screen.
    • [X] close-window button now works in port Access Control and SMTP Permissions dialogs.
    • SpamPal can now suggest a replacement DNSBL service if one of the existing ones goes bye-bye.
    • Port properties dialog is now a tabbed dialog
    • You can now choose how many days of filtering statistics to keep.
    • New "keep dialog open" checkbox on "add to whitelist/blacklist" dialog.
    • Blacklist & whitelist text areas now include a context-sensitive menu to allow you to cut, copy and paste without having to use the keyboard shortcuts. (some people have reported that this doesn't work for them - if anyone has any suggestions as to how this can be fixed, please let me know.
    • Individual port access control list dialogs should now be dismissed when you press ESCAPE rather than ENTER.
  • POP3-specific:
    • Made change to allow use by AVM-KEM users: / can be used to separate SpamPal's username & servername as well as @ and %
    • Now sends username when USER command received (not waiting until PASS received) so long as Attempt APOP is not enabled.
    • Now always able to output at least one "X-SpamPal-Timeout: Prevent" header line if necessary.
    • Now times out after five minutes of trying to read the banner line or authenticate your username & password
  • IMAP4-specific:
    • When status window is automatically opened, it now waits 2 seconds before auto-closing (as it does with POP3 and SMTP).
    • No longer marks filtered messages as unseen if they were not unseen to begin with.
    • Now copies \Seen and \Deleted flags from the original message to any rewritten or moved copy of the message.
    • User can now choose only to filter mail in Inbox (or another mailbox) if they wish
    • Connections to client and server are no longer inter-dependant - so if the client connection is closed while a mailbox is being filtered, the filtering won't automatically terminate half-done. (If this turns out to create problems, I'll change it back to the way it was.)
    • Now no longer tries to list unprocessed messages in a folder if it returns a "* 0 EXISTS" response.
  • SMTP-specific:
    • Now doesn't allow open relay exploits in RCPT TO: lines
    • Improved way MAIL FROM and RCPT TO addresses are extracted in SMTP proxy so that they are no longer required to be bounded by < and >.
    • Will never reject mail from a local I.P. address due to a DNSBL listing.
    • Now only auto-whitelists RCPT TO: addresses if the connection is from one of the designated local I.P. addresses.
    • Now records number of passed, tagged & whitelisted messages - in status window and logfile summary at connection end - even if "apply standard SpamPal filters" is disabled, so long as one of the "reject" options is enabled.
  • Misc:
    • Logfile will now be trimmed automatically to a user-specified size.
    • Now extracts I.P. addresses from Received: lines even if they're prefixed with a @
    • Now warns user if HtmlTagger v0.1 is enabled, and disables it automatically.
    • Now reports slightly more detail about crashes.
    • Session logfiles now appended to main logfile after a crash
    • Should no longer forget that it's shown the "I'm not seeing Received: lines in your message headers" warning.
    • If a DNSBL cache file is corrupt, now shows error _once_ then overwrites old cache-file correctly.
    • No longer performs select() to check for errors with listening sockets (was causing crashes for some people).
    • Updates script wasn't reporting version number correctly
    • Now interprets , and : as email address terminators - previously, lots of comma-separated email addresses without spaces in between were treated as one long email address - and could crash Whitelist Extender.
    • Should no longer be possible for SpamPal to crash if the DNSBL definitions are updated and a DNBSBL list with active DNSBL queries on the queue is removed.
  • Plugin API:
    • Plugins can now query the ignorelists and mark I.P. addresses to be ignored.
1.50 14th August 2003
  • UrlBody is now selected by default in welcome window (so long as it is installed) no matter what filtering scheme you select.
  • Added example of port number in servername to port options dialog (specific servers option only)
  • "too many DNSBLs" warning now appears if and only if all "standard" DNSBLs are selected and were not previously selected.
  • It's a release version, so I've put the French, Italian, German, and Russian translations back in
  • RETURN and ESCAPE keys should confirm/cancel in dialog boxes correctly
1.31 10th August 2003 (Beta Release)
  • Fixed synchronisation bug in plugin-communication code (thanks James Day!)
  • Periodically forces Windows to remove excess memory from the SpamPal task - looks impressive but no practical benefit (since Windows would've claimed that memory from SpamPal anyway if it were needed).
  • POP3: Fixed another small memory leak
  • IMAP4: Status window only auto-opens - and tray icon only animates - while a mail folder is actually being filtered, not all the time the connection is open.
1.30 6th August 2003 (Beta Release)

  • Some early releases of v1.295 could still eat message bodies; this was fixed quickly in the releases designated v1.2952.
  • Now saves filtering statistics more often.
  • Dates in filtering stats should now be in user's own local format.
  • Fixed various memory leaks, most notably in the IMAP4 support.
  • Fixed logging so that it's impossible for SpamPal to write to a closed log.
  • Fixed bug that could cause crashes or other weird effects when dealing with very large email messages.
  • Very large (>1kb) subject lines were causing crashes when logging was active; fixed.
  • Last version sometimes crashed if the user didn't have an auto-whitelist; fixed.
  • Some lines were duplicated when the logging was set to "extreme"; fixed.
  • Rewritten pipe-management code for plugin communication - should use less threads and be more efficient.
  • Ignorelisted I.P. addresses should no longer be passed to plugins.
  • Now checks for updates using spampal.org rather than spampal.org.uk
  • POP3: Improvements to sequencing of POP3 message prefetching - possibly slightly more efficient.
  • IMAP4: Should no longer crash if there's a network error while message body is being fetched.
  • IMAP4: Should no longer expunge messages you delete manually while SpamPal is processing the folder.
  • IMAP4: Removed spurious "can't find UID in FETCH response" messages.
  • SMTP: When tagging spam, now considers the MAIL FROM and client IP addresses even if not configured to reject based upon them.
  • SMTP: When the MAIL FROM address is whitelisted, spam will never be rejected regardless of your other settings.
1.295 19th July 2003 (Beta Release)
  • Fixed bugs that were causing lots of crashes.
  • Fixed bug that was causing message bodies to be lost.
  • Fixed bug that caused spurious "server not found" errors when using the "attempt APOP authentication" option with a server that doesn't support APOP.
1.294 17th July 2003 (Beta Release)
  • Yesterday's beta wasn't finding any I.P. addresses in the Received: lines - which means it was catching hardly any spam! Fixed in this release; really sorry about that.
  • Now uses James Day's suggestion for more efficient DNSBL thread management.
  • POP3: Now buffers results and overlaps processing of TOP comands - should improve performance with some mail clients.
1.293 16th July 2003 (Beta Release)
  • Auto-whitelist of email addresses should be working again - it was broken in the last beta.
  • Now looks for email addresses in the Return-Path: header line as well
  • Refused connections now silently entered into logfile if logging is enabled - a pop-up warning will only appear if logging is disabled.
  • Fixed a few memory leaks that could cause SpamPal to grab lots of memory over long sessions under certain circumstances.
  • Fixed a bug that could cause SpamPal to freeze up in rare cases.
  • Tweaked socket code so sockets are always recreated when the machine powers back up - should fix problem with SpamPal stopping responding when Windows comes out of hibernation.
  • SpamPal would give incorrect error and crash if writing to common logfile failed - fixed.
  • Filtering statistics are now only saved when SpamPal exits.
  • Minimum permitted DNSBL time-out period is now 1 second.
  • IMAP4: fixed minor bug that could cause crashes if FETCH command returned no results.
  • IMAP4: now detects mail arrival using EXISTS rather than RECENT response - should fix problem whereby some mail clients fetched the new mail too quickly and prevented SpamPal from filtering it.
1.292 4th July 2003 (Beta Release)
  • The "Add to Whitelist" and "Add to Blacklist" boxes now auto-complete.
  • Validation errors in blacklist/whitelist/ignorelist are now highlighted properly. Blacklist/whitelist now does better job of parsing what you paste into it.
  • Now checks the Mailing-List: header against the blacklist and whitelist, too.
  • A bit quicker at reading large, rewritten message bodies from a pluggin (ie HtmlModify).
  • Now reports X-Wlist-Pattern: headers for email addresses that were in the auto-whitelist, too.
  • Verbose and Extreme logs now record when a plugin changes a message's status.
  • Should no longer give filing errors when lots of active sessions if creating a logfile.
  • Now only saves the status window position when the window closes - should help some of those who were getting "Permission denied" errors from this code.
  • Should no longer crash if status window position file can't be written.
  • "Exit SpamPal" option in status window menu now actually works.
  • The confirmation you get before exiting can now be disabled.
  • New and improved disabled status tray icon supplied by Antony Georg Arendt.
  • The welcome window now prompts new users to choose to use a set of Far Eastern country DNSBLs, and also RegExFilter and UrlBody if either or both are installed.
1.291 27th June 2003 (Beta Release)
  • Fixed bug that was causing lots of unnecessary DNSBL time-outs.
  • Trailing spaces in extra DNSBL definitions file should no longer cause problems.
1.29 26th June 2003 (Beta Release)
  • All the changes of beta v1.281, plus...
  • General:
    • New event-logging feature; check out the "Logging" page of the Options window.
    • DNSBL thread-management now more intelligent - seems much faster!
    • Now possible to terminate connections from the Status window.
    • New "Ignorelist of Providers" in the Options window replaces the old Yahoo Whitelister plugin.
    • Blacklist and whitelist should no longer complain about high-bit characters.
    • Resolved issue that was causing large attachments to be truncated for some people.
    • More tweaks to code for removing control characters from headers.
    • Now reports X-SpamPal: PASS WLIST EMAIL and SPAM BLIST EMAIL rather than PASS WLIST FROM and PASS BLIST FROM.
    • SpamPal will warn you if your mailserver seems to be removing Received: lines.
    • Added new plugin API functions to get more information about plugins for new-style Options dialog.
    • Added new plugin API functions to allow a plugin to easily associate data with a message.
    • Now concatenates multiple Subject: lines, as spammers were occaisionally putting in more than one Subject: in an attempt to evade filtering rules.
  • User-Interface:
      Redesigned Options window.
    • Added some pretty statistics to the Status window.
    • "Add to Whitelist" and "Add to Blacklist" dialogs now include a drop-down list of recently seen email addresses. Also made them more intelligent at dealing with malformed input.
    • Blacklist and whitelist should now scroll properly.
    • User is prompted to confirm before exiting SpamPal.
    • Added option of keeping the status window on top.
    • Added option of left-clicks on the tray icon doing nothing.
  • Update-checking:
    • On the first update-check, SpamPal was listing plugin versions that were already installed; fixed.
    • "Check for Program Updates" checkbox in the options window was being ignored - fixed.
    • DNSBL list repeatedly-updating issue fixed.
  • POP3:
    • Message previews were including part of the message body sometimes; fixed.
    • A malformed TOP command during authentication can no longer crash SpamPal.
    • New time-out prevention method; should hopefully do better at preventing time-outs in Outlook Express.
    • Fixed issue that had SpamPal forget the size of the last message in your mailbox.
    • No longer adds X-SpamPal: header lines to otherwise-empty email messages; should fix a compatibility problem with some other filtering tools.
  • IMAP4:
    • Fixed bug wherein IMAP4 didn't like usernames containing more than one @ or %.
    • Fixed minor bug with handling of IMAP4 networking errors
    • No longer fiddles with CAPABILITY responses if in "specific server" mode, so AUTHENTICATE logins should now work.
    • SpamPal was giving "NO UID sequence number expected" errors in certain cases; fixed.
  • SMTP:
    • SMTP proxy's Received: lines should now take account of daylight savings time.
1.14 22nd April 2003 1.281 11th June 2003 (Beta Release)
  • RETURN and ESCAPE keys should now work on "add to whitelist" dialog.
  • TAB key should now work in plugin windows.
  • Updated Russian translation.
  • Tweaked German translation.
  • No longer crashes on start-up if you attempt to upgrade directly from v1.14.
1.28 8th June 2003 (Beta Release)
  • The button on the updates window now takes you to the appropriate page of the SpamPal website for the available updates.
  • Options window now warns you if you try to blacklist or whitelist an email address starting with '@'. The "Add to blacklist" and "add to whitelist" dialogs will add a '*' in front of this automatically.
  • Can now double-click on plugins or ports to open the properties windows automatically.
  • IMAP4 connections sometimes froze because untagged CAPABILITY responses were getting corrupted; fixed.
  • Some people experienced SpamPal freezing for a minute or more after it had checked for updates; fixed.
  • Individual ports can now have their own access control lists.
  • Multiple port settings can now share a single port number; SpamPal chooses which setting used based on the access control lists and the client I.P. address, or failing that prompts the user to choose.
  • Date in the SMTP proxy's Received: header should now be RFC2822-compliant.
  • SMTP proxy was getting MAIL FROM and RCPT TO address confused in its Received: header. Fixed.
  • Pop-up message about unauthorised connection attempts now include the client I.P. address.
  • Fixed another buffer overflow - how did that one slip through?
  • Fixed minor bug in netblock list validation.
  • Now validates SMTP permissions lists
  • Update-checking now reports proxy error messages correctly.
  • Now supports a more advanced updates-list format, which will allow me to show some updates only to people using certain versions, or certain languages.
1.27 28th May 2003 (Beta Release)
  • Can now protect IMAP4 mailboxes!
  • Can now protect SMTP connections, and also auto-whitelist people to whom you send email.
  • Should now be slightly less spam slipping through due to DNSBL time-outs.
  • Was still hanging when it encountered a message without a body; fixed again.
  • Status window now remembers its size and layout correctly.
  • Some DNSBL services weren't working because SpamPal could handle result codes that contained octets greater than 127; fixed.
  • Fixed incorrect "you have used a later, incompatible version of SpamPal" message.
  • Cancel button on port properties dialog should now work.
  • Incorporates correct error number into "unable to connect to server" POP3 response.
  • Should now recreate tray icon if Explorer crashes.
  • Should be better at managing memory in Windows NT, 2000 and XP.
  • Now uses Steve Basford's enhanced tray icon when filtering is disabled.
  • Plugin API enhancements.
1.26 17th April 2003 (Beta Release)
  • Last version wouldn't work on Windows 95 and some old versions of Windows 98 - should be fixed now. Sorry!
  • Now strips singleton carriage returns out of headers as well as singleton line feeds; some spammers were using singleton carriage returns to make some mail clients ignore the X-SpamPal (and similar) headers.
  • Should no longer cause a large delay when the URL-Body plugin is being used.
  • Return and Escape keys weren't working on the "Add to blacklist/whitelist" dialog; fixed.
  • User can now choose how much of message body to filter when fetching a POP3 message preview. (It's at the bottom of port properties dialog.)
  • Default filtering scheme is now "Medium" and not "Aggressive".
  • Tray icon now grayed out on start-up if filtering is disabled.
  • Now degrades more gracefully if it detects a corrupt DNSBL cache file.
  • More additions to plugin API.
1.13 9th February 2003 1.25 9th April 2003 (Beta Release)
  • Fixed a bug that was causing corruption of messages larger than about 5Mb.
  • Fixed bug in DNSBL list scrolling
  • Updates lists are now downloaded in a compressed format; faster for you and saves bandwidth for me!
  • Now warns you of the dangers if you try to downgrade from v1.15 or later.
  • The last version still sometimes fell over when it encountered a large message. This should be fixed now!
  • Only loads wininet.dll when it actually needs to check for updates, so SpamPal should use a little less memory most of the time.
1.241 5th April 2003 (Beta Release)
  • Should no longer fall over when it encounters large messages.
1.24 3rd April 2003 (Beta Release)
  • All known bugs fixed! Too many and too obscure to list, but if recent betas have crashed for you, try this one.
  • Optimised new DNSBL code - should now be as quick or quicker than in v1.22.
  • Changes to the way message bodies are filtered. Should hopefully mean less client time-outs and less bizarre and inconsistant results, but may be slightly slower for users of some mail clients.
  • New "minBodyBytesRequired" function in plugin API (documentation will be updated on 4th April).
  • Timed-out messages no longer count towards auto-whitelists.
  • Was adding X-Wlist-Pattern: and X-Blist-Pattern: headers even when that option was disabled. Fixed.
  • You can now select a port number or plugin by clicking anywhere on its row, not just on the port number or plugin name. (Thanks Beasty!)
1.23 24th March 2003 (Beta Release)
  • Finally tracked down and fixed the bug that was causing those crashes - thanks to everyone who helped me with this. Let's hope I haven't created any new bugs in my previous efforts to fix it...
  • Dropped connections sometimes caused lines in the status window to hang around forever - hopefully fixed this.
  • Rewritten DNSBL code - still work be done on this, to improve the efficiency.
1.22 17th March 2003 (Beta Release)
  • Fixed "straddling terminators" bug. Maybe that was the one that was causing all the crashes?
  • New code wasn't always handling dropped connections very well. Fixed.
1.21 13th March 2003 (Beta Release)
  • The last beta was freezing when it encountered a message without a body; fixed.
  • Maybe fixed the other major issues with v1.20 as well - only your bug reports will tell me for sure! ;-)
  • Hopefully fixed the timeout issue when SpamPal was used with Norton.
1.20 8th March 2003 (Beta Release)
  • Spaces at the end of DNSBL definition lines, or lines in the blacklist or whitelist, no longer cause problems.
  • Several other minor, niggling bugfixes.
  • Minor additions to plugin API.
1.19 23rd February 2003 (Beta Release)
  • Should no longer crash when you're using both tagging options together.
  • Should no longer crash when you're using the "suppress error messages in client" option.
  • You can now set the DNSBL caching periods in hours, or set them to 0 to disable caching almost entirely.
  • New X-Blist-Pattern: and X-Wlist-Pattern: headers explain why a message was black/whitelisted.
1.182 16th February 2003 (Beta Release)
  • Should no longer crash if POP3 login fails
1.18 9th February 2003 (Beta Release)
  • Fixed a bug that was causing corruption of messages larger than about 5Mb.
  • Fixed bug in DNSBL list scrolling
  • Updates lists are now downloaded in a compressed format; faster for you and saves bandwidth for me!
  • Subject tag can be added as a prefix or suffix
  • Will now warn you if you accidentally downgrade (albeit only to v1.18 or later).
  • Also warns you if you're using the buggy disruptor plugin.
  • Fixed bug in APOP "rollover".
  • No longer leaves rogue "Complete!" entries in status window.
  • Tweaked padding code.
  • Plugins are now sent original headers rather than modified ones.
  • Fixed "SpamPal is using non-standard port %d" message.
1.121 31st January 2003 1.17 1st February 2003 (Beta Release)
  • The "filterOnRawDnsbl" plugin function should no longer crash.
  • "Add to Blacklist" and "Add to Whitelist" on the tray menu were the wrong way around in the Italian translation. Fixed.
  • French version now links to a frameset-less manual.
  • Replaced tabs on the options dialog with a Mozilla-style sidebar.
  • Added "Protocol" and "Progress" columns to the status window.
  • Fixed minor bug that was causing filterOnRawDnsbl plugin function to crash.
  • If saving config.dat failed, SpamPal wasn't exiting properly - fixed.
  • More under-the-hood changes
1.12 15th January 2003 1.16 15th January 2003 (Beta Release)
  • Note that we now have a split code-base; bug-fixes are continuing to be released for v1.11 whilst new development takes place on the beta (v1.15 and above). Here's what's new this version:

    • Italian and Russian translations!
    • Fixed memory leak that was causing SpamPal to slowly claim more and more memory
    • SpamPal was occaisionally preventing Windows from shutting down. Fixed.
    • Minor change to the way SpamPal handles incoming connections; might help those for whom SpamPal was stopping working after a while.

  • Mostly bugfixes:

    • Fixed memory leak that was causing SpamPal to slowly claim more and more memory
    • Minor change to the way SpamPal handles incoming connections; might help those for whom SpamPal was stopping working after a while.
    • And a few more under-the-hood changes in preparation for IMAP4 support.

1.15 8th January 2003 (Beta Release)
  • The old "servers" configuration tab has been replaced by a new "ports" tab, which integrates the "old-style" and "new-style" configuration methods.
  • Resolved issue that was causing SpamPal to sometimes freeze when you try to shut down Windows.
1.11 7th January 2003
  • Bugfix release. Most notably:

    • Fixed bug that was causing crashes during mail fetches.
    • Fixed bug that was causing crashes in the new "Add to whitelist" feature.
    • The -configdir option wasn't working with long filenames. Fixed.

1.10 1st January 2003
  • Finally, a new full release of SpamPal! It includes the following changes:

    • Can now be used in French! (Although the manual hasn't been translated yet.)
    • You can use the command-line option -suppress_multiple_instances_warning yes to mute the "SpamPal is already running" error message.
    • Various miscellaneous minor tweaks and bugfixes.

  • In addition, SpamPal v1.10 includes all the enhancements that were seen in the beta releases since v1.06. For full information you can consult the full history page, but the major changes include:

    • Allows use of more advanced plugins.
    • German-language support.
    • New "Add to Whitelist" function on the tray menu allows addresses to be added directly to the whitelists.
    • New users now get a choice of three filtering schemes when SpamPal first runs.
    • More efficient storage of configuration files.
    • Tray icon can be removed using the -trayicon none command-line option.
    • Support for APOP authentication.
    • SASL authentication can also be used if you configure SpamPal in "mailserver given in SpamPal" mode.

1.093 19th December 2002 (Beta Release)
  • Fixed a couple of subtle bugs that were causing unpredictable crashes.
  • Fixed a couple of typos in the German translation (thanks Daniel!)
1.092 18th December 2002 (Beta Release)
  • The automatic APOP authentication was causing problems for a lot of people. This is now disabled by default, but can be enabled from the options dialog.
1.091 16th December 2002 (Beta Release)
  • The last beta was forgetting Message IDs it had already seen - this has implications for the automatic whitelist. Fixed that bug.
1.09 15th December 2002 (Beta Release)
  • New "Add to Whitelist" and "Add to Blacklist" functions available from the tray menu.
  • New users now get a choice of three filtering schemes.
  • Will automatically log in with APOP if your server supports it.
  • Annoying APOP and SASL warnings will now only appear when relevent!
  • Status window remembers its last position, size, and the widths of the columns.
  • Added option for status window to open automatically while mail is being checked.
  • Added option to choose which window will open when you click on the tray icon.
  • DNSBL cache and Auto-whitelist are now not stored in lots and lots of tiny little files.
  • Fixed bug in DNSBL result caching.
  • Fixed minor bug in plugin API.
  • Connection error messages can now be muted without using the "suppress error messages" option, which was causing problems for users of The Bat!
  • Modified installer so running SpamPal and creating the Startup option is optional (useful if you've added command-line options).
  • You can use the command-line option -trayicon none if you don't want a tray icon.
1.082 23rd November 2002 (Beta Release)
  • German version was sending people to the wrong site for updates.
1.081 21st November 2002 (Beta Release)
  • Annoying warnings about APOP, SASL and Secure Password Authentication were popping up all the time for users of certain mail programs (e.g. Mozilla, Netscape). These can now be muted.
  • These annoying warning boxes were empty in the German version. Fixed.
  • Should no longer be possible to get the "unable to load language resources" error.
1.08 12th November 2002 (Beta Release)
  • Now supports German as well as English (translation by Daniel Friedmann of spampal.de)
  • Rogue linefeeds are now removed from message headers (they can confuse Outlook and Outlook Express).
  • Configuration datafiles are now reloaded if they're modified while SpamPal is running.
  • Server connections are now killed if the corresponding client connection dies - no more rogue connections left hanging in the status window!
  • The laptop suspension bug fix in the last beta didn't work. This one should!
  • APOP and SASL (Secure Password Authentication) can now be used, albeit only if you're using the "Mailservers specified in SpamPal" configuration mode.
  • Various minor bugfixes and tweaks.
1.07 13th October 2002 (Beta Release)
  • Includes new and enhanced Plugin API!
  • Should now keep working after a laptop comes out of Suspend mode.
  • No longer hangs if it encounters an empty message body.
  • Now waits 30 seconds rather than 12 for network interface to be initialised.
  • Fixed minor bugs that may have been causing crashes.
1.063 26th September 2002 (Beta Release)
  • I'd managed to break RegExFilter's message body filtering in the last beta; fixed in this one.
  • The plugin function "SpamPalFilteringHooks->filterOnHost" seems to have got broken at some point; also fixed.
1.062 24th September 2002 (Beta Release)
  • Mostly minor bug-fixes:
    • The "Add extra black/whitelist" button no longer crashes on Windows XP.
    • There were some problems if you were trying to connect to a mailserver on an intranet using an IP address. Fixed now.
    • "Disable filtering" option now works properly.
    • TOP command sometimes returned wrong number of lines. Fixed.
    • Will now handle long message slightly more efficiently.
1.06 5th September 2002
  • New "addresses never to auto-whitelist" feature; useful if you get spam allegedly from workmates.
  • Fixed bug whereby subject tags weren't added to spam messages that didn't have a subject line.
  • Filtering can be enabled and disabled from the tray menu. Tray icon turns grey if filtering is disabled.
  • Now displays the location of the configuration directory in the advanced options tab.
  • Various other minor tweaks
  • Plus all the enhancements from beta v1.05 - faster, doesn't crash so much, etc.
1.05 13th August 2002 (Beta Release)
  • Major Changes:
    • Much faster!
    • Fixed a couple of minor bugs that were causing crashes in obscure circumstances.
    • No longer moans repeatedly at you if a DNSBL service you were using ceases to exist.
1.01 8th August 2002

Minor update to fix a few bugs.

  • Options window should now work correctly on Windows 2000 and XP - finally, an end to data corruption and spurious validation errors!
  • A few minor bugfixes to the status and updates windows.
1.00 28th July 2002

The first non-beta release! Broadly the same as beta v0.08, with just a few small enhancements:

  • New Features:
    • You can no longer execute SpamPal if it's already running without using the -allow_multiple_instances command-line option.
    • You can now manually initiate a check for updates, and specify whether you want to hear about new beta releases.
    • Enhanced error messages.
    • Minor GUI enhancements.
  • Bug Fixes:
    • Black & Whitelists should no longer get mangled when they're saved.
    • "Show updates window" option wasn't getting saved right. Fixed.
    • Was re-downloading DNSBL definitions even if they hadn't changed. Fixed.
    • Default DNSBL services file wasn't been loaded for new installations! How come nobody else noticed that?
0.08 4th July 2002 (Beta Release)
  • Major Changes:
    • Seems like I hadn't fixed all the problems with the blacklist & whitelist on Windows 2000 & XP; the validation routine should now work too.
    • Made the error messages a bit friendlier.
0.07 3rd July 2002 (Beta Release)
  • Major Bug Fixes:
    • BadWords plugin will no longer freeze up on Windows NT & 2000.
    • Line breaks will no longer vanish from the blacklist & whitelist on Windows 2000. (Although any that have already vanished will have to be put in by hand, I'm afraid!)
    • "Move to Whitelist" from auto-whitelist button will now be enabled and disabled appropriately.
    • Email & I.P. addresses were needing one-more than the specified number of emails to get on to the auto-whitelist. Fixed.
0.06 23rd June 2002 (Beta Release)
  • Major New Features:
    • Persistant caching of DNSBL results - should speed up mail fetching.
    • Doesn't store mails in temporary files unless they're very large - should prevent the problem with Norton crashing SpamPal because it detects SpamPal fetching a Klez-infected mail.
    • Status window improvements.
  • Major Bug Fixes:
    • Fixed bug in plugins interface that was making BadWords forget any changes to the words list.
    • "View log" and "Remove from auto-whitelist" buttons no longer overlap.
    • Now deleted auto-whitelist logfiles when you remove the corresponding entry from the automatic whitelists.
    • Missing examples from advanced whitelist dialog have been returned safe and well.
    • Whitelisted email addresses will now override the blacklist.
    • Maximum size for Black- and White-lists is not 8Mb rather than 32k.
    • No longer hangs if you exit whilst mail fetches are in progress.
    • Improved error-handling; should no longer pop up "Connection closed unexpectedly" messages all the time.
    • No longer does lookups on RFC1918-reserved I.P. addresses.
    • Installation script should now locate the Startup group correctly (previously didn't work if it wasn't called "Startup").
    • Lots of obscure minor bugs fixed.
0.05 1st June 2002 (Beta Release)
  • Major New Features:
    • Plugins interface! A Plugin Developers Kit will be released in the near future.
    • New tray icon, which now animates when SpamPal is active. There's also a status window.
    • Can use % instead of @ when specifying POP3 servername - needed for Netscape users!
    • Lots of back-end code rewritten to make it more efficient.
    • Can specify external black-lists and white-lists.
    • Can add extra DNSBL services (warning: clunky!)
    • Entries in the auto-whitelists can now be documented.
    • Option to allow external machines to connect to SpamPal.
    • Can now disable auto-whitelist filtering, or spamfiltering full-stop.
  • Major Bug Fixes:
    • Can suppress "connection failed" as well as "server not found" errors.
    • Hacked around a Microsoft bug that was causing problems in Windows 95 with Winsock 2.
    • Messages passed due to DNSBL time-outs no longer contribute towards automatic whitelists.
    • Auto-whitelisted I.P. addresses now displayed in order.
    • Should no longer get cryptic networking error messages.
    • Subsumed DNSBL lists are now checked as well as grayed-out.
    • Various other obscure bugs fixed.
0.04 26th April 2002 (Beta Release)
  • Major New Features:
    • New set-up procedure. New way of specifying your server name - no longer necessary for your mail client to connect on different ports to check multiple mailboxes!
    • Choose how long SpamPal should wait before DNSBL queries time-out.
  • Major Bug Fixes:
    • SpamPal should no longer crash when you exit.
    • When disabled, the "Add subject tag" option kept turning itself back on. Should be fixed now.
    • A few minor bugs fixed.
0.03 16th April 2002 (Beta Release)
  • Third beta cranked out quickly, after another very worrying bug showed up.
  • Major New Features:
    • User-defined subject tags for spam messages, or you can put the entire X-SpamPal: header in the subject line.
    • Option to suppress suppress "servername does not resolve" errors. Will no longer remove these automatically.
    • And you can specify a non-standard configuration directory if you really want to.
  • Major Bug Fixes:
    • Fixed another bug that was causing SpamPal to freeze sometimes while fetching mail, this time concerning high-bit-set characters. If SpamPal is still freezing for you, please mail me.
0.02 15th April 2002 (Beta Release)
  • Second beta. I wasn't planning to release it quite so soon, but given the severity of some bugs in v0.01 I thought it was probably for the best. My thanks to everyone who helped me fix (hopefully!) these problems.
  • Major New Features:
    • Automatic Whitelist of email addresses and mailservers that send you frequent emails - this should if nothing else help a little with the speed issues!
    • You can specify how frequently the program should check for updates.
    • Only reports "server not found" errors until it connects to that mailserver for the very first time - should help those whose mail client was checking for new mail even when you were offline and causing SpamPal to emit "server not found" messages.
  • Major Bug Fixes:
    • Hopefully nailed on the head the bug that was causing SpamPal to freeze sometimes.
    • Should no longer require Winsock2 on Windows95 machines. (I've not had an opportunity to test this, however.)
    • Configuration files are now stored in the user profile rather than the Windows directory.
    • Error messages boxes should no longer appear under other windows.
    • Can no longer select subsumed (grayed-out) DNSBL lists.
0.01 9th April 2002 (Beta Release)
  • First beta release. Basic functionality implemented and working as far as I know. If you run into any problems please mail me.
 
Current Versions
 
Latest News
 
Recent Discussions