I used to run a small mail server at home and while I didn't registered for a domain name I used dyndns.org instead.
Very easy to maintain and no annual fees charged. My mail system was http://netwinsite.com/, never had problems with virus or spam.
It can be quite challenging to configure it at first, but once you get it up and running you can leave it running 24/7, with minor or no issues at all.
I did however run a small DC, mainly for local DNS resolutions and for distributing IP addresses, but I never set up my servers in a DMZ, I always enable port forwarding on my router.
For example, instead of placing my mail server in a DMZ, I would simply forward ports 110 and 25 on the router's end.
And if you need to manage your servers remotely, you could use either openVPN or SSH.