I have used the smtp server included with Windows Services For Unix (SFU). Its a free download and will give you many of the unix commands and several of the daemons. The link is
http://www.microsoft.com/technet/interopmigration/unix/sfu/default.mspx I have not used it lately but it should work well for you. Now I have a dedicated Linux box that I use for sending and
testing email.
Apache James, as mentioned, is a good option also. I use it in production to route email for one of our projects involving virtual domain hosting.
As an aside, and
only if you have curiosity and free time, it its possible to find the MX record and talk directly to the mail server that handles the mail for a recipient. Let me state again that is not a viable solution to the problem described in your post. The com.sun.jndi.dns.DnsContextFactory will enable you to find the MX record. This is per recipient, most mail servers are not (and should not be) open relays. This could be done before each send or within the JavaMail API which is now open source.