Make sure you're pointing to an SMTP service
on your production server, it may not work on "localhost" as it does on
your development machine. And pinging the server doesn't really tell you
if it has SMTP enabled.
I generally prefer setting up SMTP for my sites in web.config:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="you@yourdomain.com">
<network host="localhost" port="25" userName="user" password="pass" />
</smtp>
</mailSettings>
</system.net>
UPDATE:
If your code is working on your development machine, and it fails on
the server with the same configuration, then there's probably something
blocking. I would suggest trying to play around with a simple
implementation that does nothing but test the servers SMTP
configuration. You may want to try the <smtp deliveryMethod="SpecifiedPickupDirectory">, it's quite helpful when testing code that sends out emails. See the http://msdn.microsoft.com/en-us/library/system.net.mail.smtpdeliverymethod.aspx on MSDN.