From 0c54b74fc47304e2d6e70b604e15ef3827fa59d4 Mon Sep 17 00:00:00 2001 From: mark Date: Tue, 15 Jun 2010 05:10:12 +0000 Subject: [PATCH] RT#7869: fix error messages when send_email fails in the job queue --- FS/FS/Daemon.pm | 1 + FS/FS/Misc.pm | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/FS/FS/Daemon.pm b/FS/FS/Daemon.pm index ca181345a..f92a2ee37 100644 --- a/FS/FS/Daemon.pm +++ b/FS/FS/Daemon.pm @@ -83,6 +83,7 @@ sub myexit { } sub _die { + die @_ if $^S; # $^S = 1 during an eval(), don't break exception handling my $msg = shift; unlink $pid_file if -e $pid_file; _logmsg($msg); diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm index b275c9dfc..895681fb0 100644 --- a/FS/FS/Misc.pm +++ b/FS/FS/Misc.pm @@ -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 ... -- 2.11.0