There may actually be a solution if you're not concerned about the backscatter. But before describing it, I'd like to mention one last time the risk with the backscatter. The feature where SpamFilter puts the connection on hold while checking if a recipient is going to be accepted is enabled by default thru this setting in the SpamFilter.ini file:
;To avoid backscatter, if an incoming
email passes all filtering rules, but cannot be forwarded (ex. mailbox
full, non-existent user), SpamFilter maintains open the incoming remote
connection until it can verify with the destination server that the
email can be delivered. If not, a 5xx error is output forcing the remote
server to generate the NDR, rather than having SpamFilter send an NDR
notification email
VerifyRCPTTOForCleanEmails=1 So it's possible/likely you're already benefiting from it. When someone will send emails to a blacklisted TO email address, this will cause an NDR email to be sent back to the fake "from" email address used by the spammer. It won't be an issue if the number of emails sent to those blacklisted TO addresses is small, but if the number is high you risk having your mail server's IP being blacklisted.
This said, to the possible solution. In installations where there are multiple SpamFilter servers all using the same quarantine database, each SpamFilter will know which emails it "owns" so that that specific SpamFilter will be the one responsible for delivering the email in case the user/admin releases it from the quarantine. This is done via the "tblServersServerID" parameter in the SpamFilter.ini file. You will probably have that value set to 0: tblServersServerID=0 That value is inserted for each email in the tblQuarantine table in the database in the column "ServerID". If you configure your 1st SpamFilter to have "tblServersServerID=1" and your second SpamFilter to have "tblServersServerID=2", then each of the two SpamFilters will be delivering the emalls from the database that it originally archived if the user chooses to deliver them. Here's what you can do however. Create an AFTER INSERT trigger on the tblQuarantine table which immediately resets the value of the "ServerID" to "2". This will force all quarantined emails to be handled by your second SpamFilter, which will then deliver them to your destination SMTP server. Now for the existing emails in the database that have a "0" for the ServerID. That "0" is sort of a wildcard, and all SpamFilters are hardcoded to try delivering emails that have a null or a 0 in that field, so the first SpamFilter server that gets to that record will be the one to deliver that email if it's released from the database. You can of course run a query that changes all the "0" to "2" when you are ready to go live so all pre-existing emails will be handled by your 2nd SpamFilter. Please let me know if you need assistance with the trigger.
------------- Roberto Franceschetti
LogSat Software
|