X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FMailer.pm;h=9ef0b085b1e943d5d740e339b8a543df13f5d12d;hb=75f484cf53923b2734363b5ed3c81623037aeac3;hp=1cf519b60940551d08ad7dff924f53fde89a41ac;hpb=48399a5a2938079361780de1e87e15e6dbbca349;p=kivitendo-erp.git diff --git a/SL/Mailer.pm b/SL/Mailer.pm index 1cf519b60..9ef0b085b 100644 --- a/SL/Mailer.pm +++ b/SL/Mailer.pm @@ -33,8 +33,11 @@ package Mailer; use Email::Address; use SL::Common; +use SL::MIME; use SL::Template; +use strict; + my $num_sent = 0; sub new { @@ -111,7 +114,7 @@ sub send { $email =~ s/[^\w\.\-\+=@]//ig; my %temp_form = ( %{ $form }, 'myconfig_email' => $email ); - my $template = PlainTextTemplate->new(undef, \%temp_form, $myconfig); + my $template = SL::Template::create(type => 'PlainText', form => \%temp_form); my $sendmail = $template->parse_block($main::sendmail); if (!open(OUT, $sendmail)) { @@ -181,10 +184,10 @@ $self->{message} $filename =~ s/(.*\/|\Q$self->{fileid}\E)//g; } - my $application = - ($attachment =~ /(^\w+$)|\.(html|text|txt|sql)$/) - ? "text" - : "application"; + my $application = ($attachment =~ /(^\w+$)|\.(html|text|txt|sql)$/) ? "text" : "application"; + my $content_type = SL::MIME->mime_type_from_ext($filename); + $content_type = "${application}/$self->{format}" if (!$content_type && $self->{format}); + $content_type ||= 'application/octet-stream'; open(IN, $attachment); if ($?) { @@ -193,16 +196,15 @@ $self->{message} return "$attachment : $!"; } - print OUT qq|--${boundary} -Content-Type: $application/$self->{format}; name="$filename"; |; - # only set charset for attachements of type text. every other type should not have this field # refer to bug 883 for detailed information - if ($application eq 'text' && $self->{charset}) { - print OUT qq|charset="$self->{charset}" |; + my $attachment_charset; + if (lc $application eq 'text' && $self->{charset}) { + $attachment_charset = qq|; charset="$self->{charset}" |; } - print OUT qq| + print OUT qq|--${boundary} +Content-Type: ${content_type}; name="$filename"$attachment_charset Content-Transfer-Encoding: BASE64 Content-Disposition: attachment; filename="$filename"\n\n|;