The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Email::Sender::Transport::SQLite - deliver mail to an sqlite db for testing

VERSION

version 1.500

DESCRIPTION

This transport makes deliveries to an SQLite database, creating it if needed. The SQLite transport is intended for testing programs that fork or that otherwise can't use the Test transport. It is not meant for robust, long-term storage of mail.

The database will be created in the file named by the db_file attribute, which defaults to email.db.

The database will have two tables:

  CREATE TABLE emails (
    id INTEGER PRIMARY KEY,
    body     varchar NOT NULL,
    env_from varchar NOT NULL
  );

  CREATE TABLE recipients (
    id INTEGER PRIMARY KEY,
    email_id integer NOT NULL,
    env_to   varchar NOT NULL
  );

Each delivery will insert one row to the emails table and one row per recipient to the recipients table.

Delivery to this transport should never fail.

PERL VERSION SUPPORT

This module has a long-term perl support period. That means it will not require a version of perl released fewer than five years ago.

Although it may work on older versions of perl, no guarantee is made that the minimum required version will not be increased. The version may be increased for any reason, and there is no promise that patches will be accepted to lower the minimum required perl.

METHODS

retrieve_deliveries

  my @deliveries = $transport->retrieve_deliveries;

This method returns a list of deliveries made so far to this transport's database. They're returned in order of insertion, and each delivery is a hash reference like this:

  id       => $db_primary_key,
  env_from => $envelope_sender,
  env_to   => \@all_env_recipients,
  message  => $text_of_email_sent

More fields may be added in the future.

AUTHOR

Ricardo Signes <rjbs@semiotic.systems>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by Ricardo Signes.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.