My goal is to set up 1 Linux computer as a spam (and maybe antivirus) filtering mail server. However, we do not host our own domain. Our domain is hosted by our ISP.

What I would like to do is have my linux server automatically check with our ISP every 2 minutes for new email. However, I want it to check 10 different POP accounts. After downloading all emails in each POP account, I would like to have the email checked for spam. After being checked for spam, I want each user's email stored seperately (in own account) and available to be retrieved via POP (maybe IMAP).

My question is what programs can I use to set all of this up. If there is more than 1 option, please list them all.

Please reply with a list of programs (and top recommendation) in the following format:
Mail retrieval - fetchmail
MTA - sendmail, postfix
SPAM - spamassassin
Antivirus - clam-av
POP server - vpopmail

After searching the internet, I think the following would work. Correct me if I am wrong.

Fetchmail will poll our ISP's POP3 server every 2 minutes. Fetchmail will send all mail to my local MTA (sendmail). Sendmail will check for spam via spamassassin. Then sendmail will store all emails in a local account. I will use a POP server for my clients to connect to for downloading of their email.

So will this work the way I mentioned? Is there a better choice of programs?

Thanks in advance for all your help.