X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FMisc.pm;h=3bbad5bb91b666e0fdd8d99034ecf0d049fed7c2;hb=10e40184a1d460981f456f156cc3c7e0c305f735;hp=69954a86233a6115c2829848cd488d1b7eb9a531;hpb=0a4943c77a402ea5148da6229c229f729eb0fb7b;p=freeside.git diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm index 69954a862..3bbad5bb9 100644 --- a/FS/FS/Misc.pm +++ b/FS/FS/Misc.pm @@ -343,21 +343,26 @@ sub send_email { $smtp_opt{'port'} = $port; my $transport; - if ( $enc eq 'starttls' ) { + if ( defined($enc) && $enc eq 'starttls' ) { $smtp_opt{$_} = $conf->config("smtp-$_") for qw(username password); $transport = Email::Sender::Transport::SMTP::TLS->new( %smtp_opt ); } else { if ( $conf->exists('smtp-username') && $conf->exists('smtp-password') ) { $smtp_opt{"sasl_$_"} = $conf->config("smtp-$_") for qw(username password); } - $smtp_opt{'ssl'} = 1 if $enc eq 'tls'; + $smtp_opt{'ssl'} = 1 if defined($enc) && $enc eq 'tls'; $transport = Email::Sender::Transport::SMTP->new( %smtp_opt ); } - - eval { sendmail($message, { transport => $transport }); }; - ref($@) ? ( $@->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 ...