From 8fec2dc1a8d85554b23c6333bac430d6004a6aed Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Thu, 24 Sep 2015 14:42:12 +0200 Subject: [PATCH] =?utf8?q?SL::Mailer:=20Inhalt=20von=20Attachments=20direk?= =?utf8?q?t=20=C3=BCbergeben=20k=C3=B6nnen?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Bisher wurde ein Attachmentinhalt immer aus einer Datei gelesen. Liegt der Inhalt schon in einer Variable vor, so kann diese nun im Attachment-Hash als Key »content« übergeben werden. Der Dateiname (Key »filename«) wird dann ignoriert. --- SL/Mailer.pm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/SL/Mailer.pm b/SL/Mailer.pm index 67f5fdd2f..dc6002b42 100644 --- a/SL/Mailer.pm +++ b/SL/Mailer.pm @@ -121,26 +121,25 @@ sub _create_address_headers { sub _create_attachment_part { my ($self, $attachment) = @_; - my $source_file_name; - my %attributes = ( disposition => 'attachment', encoding => 'base64', ); + my $attachment_content; + if (ref($attachment) eq "HASH") { $attributes{filename} = $attachment->{name}; - $source_file_name = $attachment->{filename}; + $attachment_content = $attachment->{content} // eval { read_file($attachment->{filename}) }; } else { # strip path $attributes{filename} = $attachment; $attributes{filename} =~ s:.*\Q$self->{fileid}\E:: if $self->{fileid}; $attributes{filename} =~ s:.*/::g; - $source_file_name = $attachment; + $attachment_content = eval { read_file($attachment) }; } - my $attachment_content = eval { read_file($source_file_name) }; return undef if !defined $attachment_content; my $application = ($attachment =~ /(^\w+$)|\.(html|text|txt|sql)$/) ? 'text' : 'application'; -- 2.20.1