diff options
author | mark <mark> | 2010-06-15 05:10:12 +0000 |
---|---|---|
committer | mark <mark> | 2010-06-15 05:10:12 +0000 |
commit | 0c54b74fc47304e2d6e70b604e15ef3827fa59d4 (patch) | |
tree | eaf06437399f3c5492f08e95ef94116a9970cc5b /FS | |
parent | fc1dd91f69608497a714a3c013e6b1baccd9dcac (diff) |
RT#7869: fix error messages when send_email fails in the job queue
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/Daemon.pm | 1 | ||||
-rw-r--r-- | 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 ca18134..f92a2ee 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 b275c9d..895681f 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 ... |