RT#7869: fix error messages when send_email fails in the job queue
[freeside.git] / FS / FS / Misc.pm
index afe6c63..3bbad5b 100644 (file)
@@ -353,12 +353,16 @@ sub send_email {
     $smtp_opt{'ssl'} = 1 if defined($enc) && $enc eq 'tls';
     $transport = Email::Sender::Transport::SMTP->new( %smtp_opt );
   }
-
-  eval { sendmail($message, { transport => $transport }); };
-  ref($@) eq 'Email::Sender::Failure'
-    ? ( $@->code ? $@->code.' ' : '' ). $@->message
-    : $@;
-
+  
+  local $@; # just in case
+  eval { sendmail($message, { transport => $transport }) };
+  if(ref($@) and $@->isa('Email::Sender::Failure')) {
+    return ($@->code ? $@->code.' ' : '').$@->message
+  }
+  else {
+    return $@;
+  }
 }
 
 =item send_fax OPTION => VALUE ...