X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FMailer.pm;h=87b3dfc86cc08778d3735d9ae349bed0c8559634;hb=51b8947817754d49df0694529a5b1b93d180baf3;hp=59b521834ce3b91575cbbf7f7cfc52d22f001493;hpb=e3b0f6130085592e16a5ec4aedf89cd3eaf9a363;p=kivitendo-erp.git diff --git a/SL/Mailer.pm b/SL/Mailer.pm index 59b521834..87b3dfc86 100644 --- a/SL/Mailer.pm +++ b/SL/Mailer.pm @@ -36,7 +36,6 @@ use SL::DB::Employee; use SL::Template; use strict; -use Encode; my $num_sent = 0; @@ -118,7 +117,7 @@ sub _create_address_headers { $addr_obj->phrase($phrase); } - push @header_addresses, encode('MIME-Header',$addr_obj->format); + push @header_addresses, $addr_obj->format; } push @{ $self->{headers} }, ( ucfirst($item) => join(', ', @header_addresses) ) if @header_addresses; @@ -140,7 +139,6 @@ sub _create_attachment_part { $::lxdebug->message(LXDebug->DEBUG2(), "mail5 att=" . $attachment . " email_journal=" . $email_journal . " id=" . $attachment->{id}); if (ref($attachment) eq "HASH") { - $attributes{Path} = $attachment->{path} || $attachment->{filename}; $attributes{filename} = $attachment->{name}; $file_id = $attachment->{id} || '0'; $attributes{content_type} = $attachment->{type} || 'application/pdf'; @@ -148,8 +146,6 @@ sub _create_attachment_part { $attachment_content = eval { read_file($attachment->{path}) } if !$attachment_content; } else { - # strip path - $attributes{Path} = $attachment; $attributes{filename} = $attachment; $attributes{filename} =~ s:.*\Q$self->{fileid}\E:: if $self->{fileid}; $attributes{filename} =~ s:.*/::g; @@ -164,9 +160,9 @@ sub _create_attachment_part { return undef if $email_journal > 1 && !defined $attachment_content; $attachment_content ||= ' '; - $attributes{charset} = $self->{charset} if $self->{charset}; + $attributes{charset} = $self->{charset} if $self->{charset} && ($attributes{content_type} =~ m{^text/}); - $::lxdebug->message(LXDebug->DEBUG2(), "mail6 mtype=" . $attributes{Type} . " path=" . $attributes{Path} . " filename=" . $attributes{Filename}); + $::lxdebug->message(LXDebug->DEBUG2(), "mail6 mtype=" . $attributes{content_type} . " filename=" . $attributes{filename}); my $ent; if ( $attributes{content_type} eq 'message/rfc822' ) { @@ -225,15 +221,18 @@ sub send { # Create driver for delivery method (sendmail/SMTP) $self->{driver} = eval { $self->_create_driver }; if (!$self->{driver}) { - $self->_store_in_journal('failed', 'driver could not be created; check your configuration'); - return "send email : $@"; + my $error = $@; + $self->_store_in_journal('failed', 'driver could not be created; check your configuration & log files'); + $::lxdebug->message(LXDebug::WARN(), "Mailer error during 'send': $error"); + + return $error; } # Set defaults & headers $self->{charset} = 'UTF-8'; $self->{contenttype} ||= "text/plain"; $self->{headers} = [ - Subject => encode('MIME-Header',$self->{subject}), + Subject => $self->{subject}, 'Message-ID' => '<' . $self->_create_message_id . '>', 'X-Mailer' => "kivitendo $self->{version}", ]; @@ -251,6 +250,7 @@ sub send { #$::lxdebug->message(0, "message: " . $email->as_string); # return "boom"; + $::lxdebug->message(LXDebug->DEBUG2(), "mail1 from=".$self->{from}." to=".$self->{to}); my $from_obj = (Email::Address->parse($self->{from}))[0]; $self->{driver}->start_mail(from => $from_obj->address, to => [ $self->_all_recipients ]); @@ -264,7 +264,7 @@ sub send { $self->{journalentry} = $self->_store_in_journal; - return $ok ? '' : "send email: $error"; + return $ok ? '' : ($error || "undefined error"); } sub _all_recipients {