SpamPal is a free anti spam filter that sits between your email program and your POP3/IMAP4 mailbox and separates the mail you want...from the spam you don't!

HOME
-
-
-
-

Version: v1.73beta You can use digestIT to check the following security hashes:

MD5 Hash: ec4ce7c04529134c99f1a231cefcdc01
SHA-1 Hash:61d05bd88e094d8f63de5b1957a5799a6a991a81
Changes since last version:
Logfiles:

o Wasn't correctly spacing logfile entries - fixed. (v1.72y)
o Logfile entries weren't always in correct order when prefetching was used; fixed.
o IMAP4 messages that involved prefetching were sometimes not appearing in the logfile! Fixed.

Transparent proxy:

o FIXED serious problem that caused lots of crashes in Internet applications! (v1.72z)
o Fixed silly bug that was preventing OE (among other mail programs) from correctly closing a filtered socket (v1.72z)
o Replaced unreliable _vsnprintf function with custom-written safe version. Fixed several other buffer overflows and memory errors. (v1.72y)
o No longer links with MSVCRT.DLL (v1.72y)

Misc:

o Could read past end of command-line buffer, causing a crash - fixed. (v1.72y)
o Fixed obscure crash when using non-transparent ports if there were no port settings to handle an incoming connection (v1.72z)
o Can no longer report WSAEINVAL errors when closing socket.
o Changed how progress numbers for IMAP4 prefetch threads are displayed in the status window. Still doesn't make much sense though...

Version: v172x beta

Changes
MD5 Hash:
a90d0aa223e4e2f90f539a7b993546fe

SHA-1 Hash:
c1df892721fbbf806a49389573f0a587fe03444d
* 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!


Version: v172v beta

Changes
MD5 Hash:
121bdca32f3b5db2eccaf36c4f85e5ac

SHA-1 Hash:
57d64bb4a927f8ba2117c32339b47c44dc22c7c5

# 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++


Version: v172g beta

Changes
MD5 Hash:
5bffce6ad20525be369263d82b217aea

SHA-1 Hash:
cff66f62a01a865b753c6dd48f13da39e222e68b

# 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.


Version: v171d beta

Changes
MD5 Hash:
9038c5803a79b328f6add57ab930a3e4

SHA-1 Hash:
1c945723bec3c4cfc47d3ecf121331d1f166bc5e

* 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:

o 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.)

o Fixed issue that was causing problems with SmartFTP if SpamPal transparent proxy were used.

o 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.

o For connections filtered with the transparent proxy, the final command would sometimes not be sent to the server - fixed.

o 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.)

o 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.


Version: v1704 beta

Changes
MD5 Hash:
afb1c389d17da33a86c22b64d5cc5be5

SHA-1 Hash:
4f329e2686329abe5a77683c7904a2906f70fb8e

* New Transparent Proxy feature - click here to learn more

* 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.
* 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.

* 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.

* New option in the Interface pane allows you to deactivate SpamPal's checking that status window is always on main desktop

* Tweaked layout of Plugin pane of options dialog (thanks Steve!)
* Added 'donations' page to options window
* 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
* 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.

* For debug-logging releases, two new registry keys allow you to turn debug-logginglogging on/off and set debug-logging folder.

* 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.


Version: v1704 beta

Changes
MD5 Hash:
afb1c389d17da33a86c22b64d5cc5be5

SHA-1 Hash:
4f329e2686329abe5a77683c7904a2906f70fb8e

* New Transparent Proxy feature - click here to learn more

* 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.
* 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.

* 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.

* New option in the Interface pane allows you to deactivate SpamPal's checking that status window is always on main desktop

* Tweaked layout of Plugin pane of options dialog (thanks Steve!)
* Added 'donations' page to options window
* 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
* 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.

* For debug-logging releases, two new registry keys allow you to turn debug-logginglogging on/off and set debug-logging folder.

* 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.


Version: v1641 beta

Changes
MD5 Hash:
dff3d256f6c486cf1b22ae675b76faef
SHA-1 Hash:
1ad8505375e4561b02f02bf97fbb23f0d416d0e7
* 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.

Version: v164 beta

Changes
MD5 Hash:
22d48e2935c0c71ff662d2a6fb04ec8d
SHA-1 Hash:
d28f3ea28edc5bb16ba6948a1c82ef1ead569e61
* Fixes crashes after updating to Windows XP service pack 2. 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"

* "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.

* 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.


Version: v1634 beta

Changes
MD5 Hash:
ac77a705e1cc4149817b93823dedff33
SHA-1 Hash:
3906b342803d1503aa51dfd16d1c0c9c5bbd9ada
*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.

Version: v1623 beta

Changes
MD5 Hash:
b9409fafeb84829490e040414ecbc49d
SHA-1 Hash:
5114e3fbf5e74d5ce4bf59d2e535bb9716e7bc42
* 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.