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';
sub _store_in_journal {
my ($self, $status, $extended_status) = @_;
+ my $journal_enable = $::instance_conf->get_email_journal;
+
+ return if $journal_enable == 0;
+
$status //= $self->{driver}->status if $self->{driver};
$status //= 'failed';
$extended_status //= $self->{driver}->extended_status if $self->{driver};
$extended_status //= 'unknown error';
- my @attachments = grep { $_ } map {
+ my @attachments;
+
+ @attachments = grep { $_ } map {
my $part = $self->_create_attachment_part($_);
if ($part) {
SL::DB::EmailJournalAttachment->new(
content => $part->body,
)
}
- } @{ $self->{attachments} || [] };
+ } @{ $self->{attachments} || [] } if $journal_enable > 1;
my $headers = join "\r\n", (bundle_by { join(': ', @_) } 2, @{ $self->{headers} || [] });