Hi Thomas,
The way I have implemented it myself is by using directory learn instead of sending the command on every user interaction.
I have spamassassin (Jam sofwtare) in c:\sa
I have created a SPAM folder to which all spam e-mails are reported to as follow:
SPAM
--- ham
--- spam
I have created scheduled tasks which runs at night, checks the spam and ham folders using sa-learn and then empties those folders respectively.
The idea was not to run sa-learn on every user interaction since we all know that spamassassin in Windows is prompt to memory leaks.
I have ran spamassassin for months now and the memory usage is steady at 127MB.
Maybe something like that will work for you. It does in my case.