This patch implements two extensions to the ConfSourceSQL.pm module of SpamAssassin: 1) An alias table feature, where you can define as many aliases of an address as you want. SpamAssassin looks if $username is an alias for another username, and sets $username accordingly. You first have to create an aliases table in MySQL like this: CREATE TABLE `aliases` ( `id` int(11) NOT NULL auto_increment, `username` varchar(100) NOT NULL default '', `alias` varchar(100) NOT NULL default '', PRIMARY KEY (`id`), KEY `username` (`username`) ) TYPE=MyISAM; The "username" columns takes the real user names; the "alias" colums takes its aliases, one alias per row. 2) If the username contains an "@" sign and only characters that are valid for domain names after it, additional WHERE-clauses get appended to the SQL querystring. Example: $username is: "jonas" (already existing functionality) SpamAssassin looks for: "jonas" "GLOBAL" "@GLOBAL" $username is: "jonas@mydomain.com" (new functionality) SpamAssassin looks for: "jonas@mydomain.com" "mydomain.com" "@mydomain.com" "GLOBAL" "@GLOBAL" This allows not only a per-user configuration, but also a per-domain configuration with setups that use full e-mail addresses as usernames, e.g. vpopmail setups.