X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FMailer.pm;h=2e2a60cec10e940bbce0df9781a94b3bb2923097;hb=80f6efd0cd9de22d54ccc605808a74c9955e643c;hp=e9665caaccf14b1a1bc894b63e202c31c489c692;hpb=77733865782a76d067540b70304ff3dab7a1ab8c;p=kivitendo-erp.git diff --git a/SL/Mailer.pm b/SL/Mailer.pm index e9665caac..2e2a60cec 100644 --- a/SL/Mailer.pm +++ b/SL/Mailer.pm @@ -33,6 +33,7 @@ package Mailer; use Email::Address; use SL::Common; +use SL::MIME; use SL::Template; my $num_sent = 0; @@ -131,7 +132,7 @@ sub send { } my $headers = ''; - foreach my $item (qw(from to cc)) { + foreach my $item (qw(from to cc bcc)) { next unless ($self->{$item}); my (@addr_objects) = Email::Address->parse($self->{$item}); next unless (scalar @addr_objects); @@ -181,10 +182,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,8 +194,15 @@ $self->{message} return "$attachment : $!"; } + # only set charset for attachements of type text. every other type should not have this field + # refer to bug 883 for detailed information + my $attachment_charset; + if (lc $application eq 'text' && $self->{charset}) { + $attachment_charset = qq|; charset="$self->{charset}" |; + } + print OUT qq|--${boundary} -Content-Type: $application/$self->{format}; name="$filename"; charset="$self->{charset}" +Content-Type: ${content_type}; name="$filename"$attachment_charset Content-Transfer-Encoding: BASE64 Content-Disposition: attachment; filename="$filename"\n\n|;