I tried this not too long ago and gave up. You need 6 or 7 different daemons running, most of which give very little in terms of debugging information. You actually need a decent sized VM to host everything needing to run.
I've also become heavily reliant on a decent webmail interface and good spam filtering, which create additional layers of complexity. I'd really rather just pay a reputable company to do all that stuff for me. Basically I want gmail but without all the evilness.