I have the same issue and since most people will tell you that their SPAM comes from the US and not overseas, and that everybody in Korea is a saint, and nobody in Russian is trying to brute force me right now...
OK anyway back to reality. The internet is hostile. You can block whoever you want. Ignore the hippies that tell you that you are a bad person because you want to block the world.
Just remember, that you WILL block people you shouldn't. For example, some of your friends in North Washington might actually show up on Canadian IP addresses.
OK so anyway you need to think about this backwards. (sign of a good sysadmin)
Why block the world? Just block everything by default, and only allow the IPs you want. You can do this with a shell script, I wrote mine in like 5 minutes while drunk so... All I do is just toss every IP address in the US in to a file, and poke a hole to my server on port 25 only from those IPs.
Basic firewall fundamentals right? It's easier to block the world, and allow only what you want, than to allow the world and only block a few people.
And no, I'm not gonna write the shell script for you or post mine. I will point you to DNSstuff where you can easily get a list of all the IPs assigned to each country.
Hopefully you are running Zimbra on linux so you can use IPTables.
Dual Xeon.Dell SC1425