The steps to get this working are as follows. First, you need Perl and the Mail::Filter module. If you're at Ventures Online as I am, you'll need to open a Help Desk ticket to have it added to your server. The second thing to do is setup a test email account (I'm assuming you have your own domain name and the ability to create email addresses). Third, you need MySQL (someone could easily revise this to use something else). Once you've got MySQL, you need to setup a database. I can't help you here, other than to say that PHPMyAdmin is your friend. When the database is ready, you need to create two tables. Use the SQL below: CREATE TABLE spammers ( id int(11) NOT NULL auto_increment, reason enum('problem','spam','blacklist') NOT NULL default 'spam', time timestamp(14) NOT NULL, email varchar(255) NOT NULL default '', PRIMARY KEY (id), INDEX time (time) ); CREATE TABLE friends ( id int(11) NOT NULL auto_increment, myemail varchar(255) NOT NULL default '', friendsemail varchar(255) NOT NULL default '', PRIMARY KEY (id), INDEX myemail (myemail) ); The fourth step is to populate the "friends" table. Again using PHPMyAdmin (or whatever floats your boat), begin adding records. Each record should have your email address in the "myemail" field, and a friend's email address or domain name in the "friendsemail" field. You may find the "myemail" field to be incredibly redundant, but when you're using this for many different email accounts, it starts to make sense. Basically, you're associating certain whitelists with certain email accounts. So if I want to allow networksolutions.com and verisign.com to contact me at netsol@outshine.com, and I want to allow support@venturesonline.com to contact me at vo@outshine.com, I would add 3 records, like this: myemail | friendsemail ---------------------|-------------- netsol@outshine.com | networksolutions.com netsol@outshine.com | verisign.com vo@outshine.com | support@venturesonline.com DON'T FORGET: set up your list of approved email addresses NOW. At least add some data for that test email address you set up. Step five is to open the Perl script and setup the variables (lines 23-47) for your server & email account. If you want to put filters onto many different email addresses, save 1 copy of the Perl script for each email address. So if I want to create a filter for my netsol@outshine.com address, I might create a netsol.pl file. And a vo.pl file for my vo@outshine.com address. Each one has custom settings. Upload the Perl file to your main directory on the server, and run chmod 755 on it to make it executable. FINALLY, go into the Cpanel, click into the Mail Center, select to add a New Forwarder, and forward your email to the Perl file. Put something like this into the forward field: |/home/youraccount/yourfilter.pl Now try sending email to your address from a domain on the whitelist. It should get through. Then try from a domain that's NOT on the whitelist. It should bounce back.