X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FMailer.pm;h=b7932457b938cf5be583f4959b65236ea9427a89;hb=09c8c053181f182143beff935d011af15afddb01;hp=0783d33a4508377d4821eb694a25fc24514bd62a;hpb=ae20c836befe77f5277b3df14b7cf9810836634b;p=kivitendo-erp.git diff --git a/SL/Mailer.pm b/SL/Mailer.pm index 0783d33a4..b7932457b 100644 --- a/SL/Mailer.pm +++ b/SL/Mailer.pm @@ -34,6 +34,7 @@ use SL::DB::EmailJournal; use SL::DB::EmailJournalAttachment; use SL::DB::Employee; use SL::Template; +use SL::Version; use strict; @@ -87,7 +88,7 @@ sub _create_message_id { $domain =~ s/.*\@//; $domain =~ s/>.*//; - return "kivitendo-$self->{version}-" . time() . "-${$}-${num_sent}\@$domain"; + return "kivitendo-" . SL::Version->get_version . "-" . time() . "-${$}-${num_sent}\@$domain"; } sub _create_address_headers { @@ -139,7 +140,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'; @@ -147,8 +147,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; @@ -163,9 +161,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' ) { @@ -224,8 +222,11 @@ 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 @@ -234,7 +235,7 @@ sub send { $self->{headers} = [ Subject => $self->{subject}, 'Message-ID' => '<' . $self->_create_message_id . '>', - 'X-Mailer' => "kivitendo $self->{version}", + 'X-Mailer' => "kivitendo " . SL::Version->get_version, ]; $self->{mail_attachments} = []; $self->{content_by_name} = $::instance_conf->get_email_journal == 1 && $::instance_conf->get_doc_files; @@ -250,6 +251,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 ]); @@ -263,7 +265,7 @@ sub send { $self->{journalentry} = $self->_store_in_journal; - return $ok ? '' : "send email: $error"; + return $ok ? '' : ($error || "undefined error"); } sub _all_recipients {