+
+
+__END__
+
+=pod
+
+=encoding utf8
+
+=head1 NAME
+
+SL::Mailer - Base class for sending mails from kivitendo
+
+=head1 SYNOPSIS
+
+ package SL::BackgroundJob::CreatePeriodicInvoices;
+
+ use SL::Mailer;
+
+ my $mail = Mailer->new;
+ $mail->{from} = $config{periodic_invoices}->{email_from};
+ $mail->{to} = $email;
+ $mail->{subject} = $config{periodic_invoices}->{email_subject};
+ $mail->{content_type} = $filename =~ m/.html$/ ? 'text/html' : 'text/plain';
+ $mail->{message} = $output;
+
+ $mail->send;
+
+=head1 OVERVIEW
+
+Mail can be sent from kivitendo via the sendmail command or the smtp protocol.
+
+
+=head1 INTERNAL DATA TYPES
+
+
+=over 2
+
+=item C<%mail_delivery_modules>
+
+ Currently two modules are supported: smtp or sendmail.
+
+=item C<%type_to_table>
+
+ Due to the lack of a single global mapping for $form->{type},
+ type is mapped to the corresponding database table. All types which
+ implement a mail action are currently mapped and should be mapped.
+ Type is either the value of the old form or the newer controller
+ based object type.
+
+=back
+
+=head1 FUNCTIONS
+
+=over 4
+
+=item C<new>
+
+=item C<_create_driver>
+
+=item C<_cleanup_addresses>
+
+=item C<_create_address_headers>
+
+=item C<_create_message_id>
+
+=item C<_create_attachment_part>
+
+=item C<_create_message>
+
+=item C<send>
+
+ If a mail was sent successfully the internal function _store_in_journal
+ is called if email journaling is enabled. If _store_in_journal was executed
+ successfully and the calling form is already persistent (database id) a
+ record_link will be created.
+
+=item C<_all_recipients>
+
+=item C<_store_in_journal>
+
+=item C<_create_record_link $self->{journalentry}, $::form->{id}, $self->{record_id}>
+
+
+ If $self->{journalentry} and either $self->{record_id} or $::form->{id} (checked in
+ this order) exist a record link from record to email journal is created.
+ Will fail silently if record_link creation wasn't successful (same behaviour as
+ _store_in_journal).
+
+=item C<validate>
+
+=back
+
+=head1 BUGS
+
+Nothing here yet.
+
+=head1 AUTHOR
+
+=cut