There are lists out there of blocks assigned to certain countries for sure. I think the lists are pretty long though. Quickest way would be to acquire that list and set your firewall up to drop anything on the list. A quick google shows this
http://www.nirsoft.net/countryip/ has probably thousands of subnets. You'd be getting into a giant mess trying to manage and keep up the fluid changes on the internet. I've wanted to do something similar as well but it is quite possible some of my subscribers may actually have need to deal with some of these countries.
Best bet would be to look for a geocode database somewhere (Google?) or build your own server with a database that syncs with another freely accessible database that your mail server can reference quickly for incoming mail. Even could write something into the firewall. I've even heard of someone trying to use geolcation and Fail2Ban. Might add a little CPU overhead to the mail server though. Just some ideas to ponder..
From: "Stephen Goff" <HIDDEN@thegoffs.net>
To: surgemailHIDDEN@etwinsite.com
Sent: Wednesday, April 10, 2013 1:36:38 PM
Subject: [SurgeMail List] Country block list?
Is there a way to block a specific country from connecting to my server? I currently block offending net blocks with g_deny, but in the case of some countries (like China) this is a daunting task to enter all the possible netblocks, especially through the web interface.
If not, can this be a feature request? I envision a county list that could be either entered in a list, or via a pre-populated list. When an IP makes a connection, a whois parser could see the country of origin and if it's blacklisted, would then deny the connection.
Thanks
Steve