X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FMisc.pm;h=d84aaced5ebd214732e575d463ede5192e29887e;hb=60c34bd328a404008313d4ab78d25152ebdb9226;hp=0e366e8c7b065f5b95471811be860cfe75e9ba1c;hpb=8036d190629e546818b7418938b4e8fcda3f16a8;p=freeside.git diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm index 0e366e8c7..d84aaced5 100644 --- a/FS/FS/Misc.pm +++ b/FS/FS/Misc.pm @@ -22,7 +22,6 @@ use Encode; generate_ps generate_pdf do_print csv_from_fixed ocr_image - bytes_substr money_pretty ); @@ -109,7 +108,8 @@ use vars qw( $conf ); use Date::Format; use MIME::Entity; use Email::Sender::Simple qw(sendmail); -use Email::Sender::Transport::SMTP 1.300027; #for SSL/TLS support +use Email::Sender::Transport::SMTP; +use Email::Sender::Transport::SMTP::TLS 0.11; use FS::UID; FS::UID->install_callback( sub { @@ -248,18 +248,18 @@ sub send_email { my($port, $enc) = split('-', ($conf->config('smtp-encryption') || '25') ); $smtp_opt{'port'} = $port; + my $transport; if ( defined($enc) && $enc eq 'starttls' ) { - $smtp_opt{'ssl'} = 'starttls'; - } elsif ( defined($enc) && $enc eq 'tls' ) { - $smtp_opt{'ssl'} = 'ssl'; - } - - if ( $conf->exists('smtp-username') && $conf->exists('smtp-password') ) { - $smtp_opt{"sasl_$_"} = $conf->config("smtp-$_") for qw(username password); + $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 defined($enc) && $enc eq 'tls'; + $transport = Email::Sender::Transport::SMTP->new( %smtp_opt ); } - my $transport = Email::Sender::Transport::SMTP->new( %smtp_opt ); - push @to, $options{bcc} if defined($options{bcc}); # fully unpack all addresses found in @to (including Bcc) to make the # envelope list @@ -981,23 +981,26 @@ sub ocr_image { =item bytes_substr STRING, OFFSET[, LENGTH[, REPLACEMENT] ] +DEPRECATED + Use Unicode::Truncate truncate_egc instead + A replacement for "substr" that counts raw bytes rather than logical characters. Unlike "bytes::substr", will suppress fragmented UTF-8 characters rather than output them. Unlike real "substr", is not an lvalue. =cut -sub bytes_substr { - my ($string, $offset, $length, $repl) = @_; - my $bytes = substr( - Encode::encode('utf8', $string), - $offset, - $length, - Encode::encode('utf8', $repl) - ); - my $chk = $DEBUG ? Encode::FB_WARN : Encode::FB_QUIET; - return Encode::decode('utf8', $bytes, $chk); -} +# sub bytes_substr { +# my ($string, $offset, $length, $repl) = @_; +# my $bytes = substr( +# Encode::encode('utf8', $string), +# $offset, +# $length, +# Encode::encode('utf8', $repl) +# ); +# my $chk = $DEBUG ? Encode::FB_WARN : Encode::FB_QUIET; +# return Encode::decode('utf8', $bytes, $chk); +# } =item money_pretty