Rescue SMTP errors when sending suspension mailers

another change ensures we retry only on errors where
it makes sense to retry: like timeouts and server
busy errors. and, by rescuing all exceptions that
may be raised the logic is now more robust.

related reading:

http://robots.thoughtbot.com/i-accidentally-the-whole-smtp-exception
http://ruby-doc.org/stdlib-2.0/libdoc/net/smtp/rdoc/Net/SMTP.html#method-c-start-label-Errors