X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/7734bb7c3e952c3351e454a82181f84dc27544bb..69822fd215cb15e1bb017f1af6f0a185f62a31e2:/SL/Mailer.pm?ds=sidebyside diff --git a/SL/Mailer.pm b/SL/Mailer.pm index 1a377f367..aec34e67d 100644 --- a/SL/Mailer.pm +++ b/SL/Mailer.pm @@ -30,6 +30,8 @@ package Mailer; +use SL::Common; + sub new { $main::lxdebug->enter_sub(); @@ -55,17 +57,18 @@ sub mime_quote_text { for (my $i = 0; $i < length($text); $i++) { my $char = ord(substr($text, $i, 1)); - if (($char < 33) || ($char > 127) || - ($char == ord('?')) || ($char == ord(' '))) { + if (($char < 32) || ($char > 127) || + ($char == ord('?')) || ($char == ord('_'))) { if ($chars_left < 5) { $new_text .= "?=\n $q_start"; $chars_left = 75 - $l_start; } - $new_text .= sprintf("=%02x", $char); + $new_text .= sprintf("=%02X", $char); $chars_left -= 3; } else { + $char = ord('_') if ($char == ord(' ')); if ($chars_left < 5) { $new_text .= "?=\n $q_start"; $chars_left = 75 - $l_start; @@ -94,7 +97,7 @@ sub send { $domain =~ s/(.*?\@|>)//g; my $msgid = "$boundary\@$domain"; - $self->{charset} = "ISO-8859-15" unless $self->{charset}; + $self->{charset} = Common::DEFAULT_CHARSET unless $self->{charset}; if ($out) { if (!open(OUT, $out)) { @@ -146,6 +149,17 @@ $self->{message} foreach my $attachment (@{ $self->{attachments} }) { + my $filename; + + if (ref($attachment) eq "HASH") { + $filename = $attachment->{"name"}; + $attachment = $attachment->{"filename"}; + } else { + $filename = $attachment; + # strip path + $filename =~ s/(.*\/|$self->{fileid})//g; + } + my $application = ($attachment =~ /(^\w+$)|\.(html|text|txt|sql)$/) ? "text" @@ -158,11 +172,6 @@ $self->{message} return "$attachment : $!"; } - my $filename = $attachment; - - # strip path - $filename =~ s/(.*\/|$self->{fileid})//g; - print OUT qq|--${boundary} Content-Type: $application/$self->{format}; name="$filename"; charset="$self->{charset}" Content-Transfer-Encoding: BASE64