I was able to follow these instructions for compiling DSPAM for use with amavisd-new, and they worked very well. In addition, I trained the database with the SpamAssassin Public Corpus (link on this page).
Currently, I have only turned it on for learning, but I am not blocking on the results of the DSPAM. I want to make sure that there is a feedback loop to retrain messages that are mismarked. It looks like amavisd-new has calls both SpamAssassin and DSPAM.
From the logs it looks like DSPAM is passed the SpamAssassin score. But from the instructions that I used, it looks like you can write a SpamAssassin rule that uses the headers from DSPAM for setting a score. Maybe DSPAM gets called twice.
Also when Maia Mailguard "learns" a message, it calls SpamAssassin's learn or report. I would imagine that it should also call