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

        use Emailesque qw(
            email
        );
    
        email {
            to      => '...',
            from    => '...',
            subject => '...',
            message => '...',
        };

DESCRIPTION

    Emailesque provides an easy way of handling text or html email messages
    with or without attachments. Simply define how you wish to send the
    email, then call the email keyword passing the necessary parameters as
    outlined above. This module is basically a wrapper around the email
    interface Email::Stuffer. The following is an example of the
    object-oriented interface:

OVERVIEW

        use Emailesque;
    
        my $email = Emailesque->new({
            to      => '...',
            from    => '...',
            subject => '...',
            message => '...',
            files   => [ '/path/to/file/1', '/path/to/file/2' ],
        });
    
        my $result = $email->send;
    
        if ($result->isa('Email::Sender::Failure')) {
            die $result->message;
        }

    The Emailesque object-oriented interface is designed to accept
    parameters at instatiation and when calling the send method. This
    allows you to build-up an email object with a few base parameters, then
    create and send multiple email messages by calling the send method with
    only the unique parameters. The following is an example of that:

        use Emailesque;
    
        my $email = Emailesque->new({
            from     => '...',
            subject  => '...',
            x_mailer => "MyApp-Newletter 0.019876",
            x_url    => "https://mail.to/u/123/welcome",
            type     => 'text',
        });
    
        for my $user (@users) {
            my $message = msg_generation $user;
            $email->send({ to => $user, message => $message });
        }

    The default email format is plain-text, this can be changed to html by
    setting the option 'type' to 'html'. The following are options that can
    be passed within the hashref of arguments to the keyword, constructor
    and/or the send method:

        # send message to
        $email->to('...')
    
        # send messages from
        $email->from('...')
    
        # email subject
        $email->subject('...')
    
        # message body
        $email->message('...') # html or text data
    
        # email message content type (type: text, html, or multi)
        $email->send({ type => 'text' })
    
        # message multipart content
        $email->type('multi') # must set type to multi
        $email->message({ text => $text_message, html => $html_messase })
    
        # carbon-copy other email addresses
        $email->send({ cc => 'user@site.com' })
        $email->send({ cc => 'usr1@site.com, usr2@site.com, usr3@site.com' })
        $email->send({ cc => [qw(usr1@site.com usr2@site.com usr3@site.com)] })
    
        # blind carbon-copy other email addresses
        $email->send({ bcc => 'user@site.com' })
        $email->send({ bcc => 'usr1@site.com, usr2@site.com, usr3@site.com' })
        $email->send({ bcc => [qw(usr1@site.com usr2@site.com usr3@site.com)] })
    
        # specify where email responses should be directed
        $email->send({ reply_to => 'other_email@website.com' })
    
        # attach files to the email
        $email->send({ files => [ $file_path_1, $file_path_2 ] })
    
        # attach files to the email (and specify attachment name)
        # set attachment name to undef to use the filename
        $email->send({ attach => [ $file_path => $attachment_name ] })
        $email->send({ attach => [ $file_path => undef ] })
    
        # send additional headers explicitly
        $email->send({ headers  => { 'X-Mailer' => '...' } })
    
        # send additional headers implicitly
        $email->send({ x_mailer => '...' } # simpler

    The default email transport is sendmail. This can be changed by
    specifying a different driver parameter, e.g. smtp, as well as any
    additional arguments required by the transport:

        # send mail via smtp
        $email->send({
            ...,
            driver  => 'smtp',
            host    => 'smtp.googlemail.com',
            user    => 'account@gmail.com',
            pass    => '****'
        })
    
        # send mail via smtp via Google (gmail)
        $email->send({
            ...,
            ssl     => 1,
            driver  => 'smtp',
            host    => 'smtp.googlemail.com',
            port    => 465,
            user    => 'account@gmail.com',
            pass    => '****'
        })
    
        # send mail via smtp via Mailchimp (mandrill)
        $email->send({
            ...,
            ssl     => 0,
            driver  => 'smtp',
            host    => 'smtp.mandrillapp.com',
            port    => 587,
            user    => 'account@domain.com',
            pass    => '****'
        })
    
        # send mail via sendmail
        # path is optional if installed in a standard location
        $email->send({
            ...,
            driver  => 'sendmail',
            path    => '/usr/bin/sendmail',
        })

        my $header = $email->accept_language;
           $header = $email->accept_language('...');

    The accept_language method is a shortcut for getting and setting the
    Accept-Language header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->alternate_recipient;
           $header = $email->alternate_recipient('...');

    The alternate_recipient method is a shortcut for getting and setting
    the Alternate-Recipient header. This header is described in more detail
    within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->apparently_to;
           $header = $email->apparently_to('...');

    The apparently_to method is a shortcut for getting and setting the
    Apparently-To header. This header is described in more detail within
    RFC2076 http://www.iana.org/go/rfc2076.

        my $header = $email->archived_at;
           $header = $email->archived_at('...');

    The archived_at method is a shortcut for getting and setting the
    Archived-At header. This header is described in more detail within
    RFC5064 http://www.iana.org/go/rfc5064.

        my $header = $email->authentication_results;
           $header = $email->authentication_results('...');

    The authentication_results method is a shortcut for getting and setting
    the Authentication-Results header. This header is described in more
    detail within RFC7001 http://www.iana.org/go/rfc7001.

        my $header = $email->auto_submitted;
           $header = $email->auto_submitted('...');

    The auto_submitted method is a shortcut for getting and setting the
    Auto-Submitted header. This header is described in more detail within
    RFC3834 http://www.iana.org/go/rfc3834.

        my $header = $email->autoforwarded;
           $header = $email->autoforwarded('...');

    The autoforwarded method is a shortcut for getting and setting the
    Autoforwarded header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->autosubmitted;
           $header = $email->autosubmitted('...');

    The autosubmitted method is a shortcut for getting and setting the
    Autosubmitted header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->bcc;
           $header = $email->bcc('...');

    The bcc method is a shortcut for getting and setting the Bcc header.
    This header is described in more detail within RFC5322
    http://www.iana.org/go/rfc5322.

        my $header = $email->cc;
           $header = $email->cc('...');

    The cc method is a shortcut for getting and setting the Cc header. This
    header is described in more detail within RFC5322
    http://www.iana.org/go/rfc5322.

        my $header = $email->comments;
           $header = $email->comments('...');

    The comments method is a shortcut for getting and setting the Comments
    header. This header is described in more detail within RFC5322
    http://www.iana.org/go/rfc5322.

        my $header = $email->content_identifier;
           $header = $email->content_identifier('...');

    The content_identifier method is a shortcut for getting and setting the
    Content-Identifier header. This header is described in more detail
    within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->content_return;
           $header = $email->content_return('...');

    The content_return method is a shortcut for getting and setting the
    Content-Return header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->conversion;
           $header = $email->conversion('...');

    The conversion method is a shortcut for getting and setting the
    Conversion header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->conversion_with_loss;
           $header = $email->conversion_with_loss('...');

    The conversion_with_loss method is a shortcut for getting and setting
    the Conversion-With-Loss header. This header is described in more
    detail within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->dkim_signature;
           $header = $email->dkim_signature('...');

    The dkim_signature method is a shortcut for getting and setting the
    DKIM-Signature header. This header is described in more detail within
    RFC6376 http://www.iana.org/go/rfc6376.

        my $header = $email->dl_expansion_history;
           $header = $email->dl_expansion_history('...');

    The dl_expansion_history method is a shortcut for getting and setting
    the DL-Expansion-History header. This header is described in more
    detail within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->date;
           $header = $email->date('...');

    The date method is a shortcut for getting and setting the Date header.
    This header is described in more detail within RFC5322
    http://www.iana.org/go/rfc5322.

        my $header = $email->deferred_delivery;
           $header = $email->deferred_delivery('...');

    The deferred_delivery method is a shortcut for getting and setting the
    Deferred-Delivery header. This header is described in more detail
    within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->delivery_date;
           $header = $email->delivery_date('...');

    The delivery_date method is a shortcut for getting and setting the
    Delivery-Date header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->discarded_x400_ipms_extensions;
           $header = $email->discarded_x400_ipms_extensions('...');

    The discarded_x400_ipms_extensions method is a shortcut for getting and
    setting the Discarded-X400-IPMS-Extensions header. This header is
    described in more detail within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->discarded_x400_mts_extensions;
           $header = $email->discarded_x400_mts_extensions('...');

    The discarded_x400_mts_extensions method is a shortcut for getting and
    setting the Discarded-X400-MTS-Extensions header. This header is
    described in more detail within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->disclose_recipients;
           $header = $email->disclose_recipients('...');

    The disclose_recipients method is a shortcut for getting and setting
    the Disclose-Recipients header. This header is described in more detail
    within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->disposition_notification_options;
           $header = $email->disposition_notification_options('...');

    The disposition_notification_options method is a shortcut for getting
    and setting the Disposition-Notification-Options header. This header is
    described in more detail within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->disposition_notification_to;
           $header = $email->disposition_notification_to('...');

    The disposition_notification_to method is a shortcut for getting and
    setting the Disposition-Notification-To header. This header is
    described in more detail within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->downgraded_bcc;
           $header = $email->downgraded_bcc('...');

    The downgraded_bcc method is a shortcut for getting and setting the
    Downgraded-Bcc header. This header is described in more detail within
    RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_cc;
           $header = $email->downgraded_cc('...');

    The downgraded_cc method is a shortcut for getting and setting the
    Downgraded-Cc header. This header is described in more detail within
    RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_disposition_notification_to;
           $header = $email->downgraded_disposition_notification_to('...');

    The downgraded_disposition_notification_to method is a shortcut for
    getting and setting the Downgraded-Disposition-Notification-To header.
    This header is described in more detail within RFC5504
    http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_final_recipient;
           $header = $email->downgraded_final_recipient('...');

    The downgraded_final_recipient method is a shortcut for getting and
    setting the Downgraded-Final-Recipient header. This header is described
    in more detail within RFC6857 http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_from;
           $header = $email->downgraded_from('...');

    The downgraded_from method is a shortcut for getting and setting the
    Downgraded-From header. This header is described in more detail within
    RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_in_reply_to;
           $header = $email->downgraded_in_reply_to('...');

    The downgraded_in_reply_to method is a shortcut for getting and setting
    the Downgraded-In-Reply-To header. This header is described in more
    detail within RFC6857 http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_mail_from;
           $header = $email->downgraded_mail_from('...');

    The downgraded_mail_from method is a shortcut for getting and setting
    the Downgraded-Mail-From header. This header is described in more
    detail within RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_message_id;
           $header = $email->downgraded_message_id('...');

    The downgraded_message_id method is a shortcut for getting and setting
    the Downgraded-Message-Id header. This header is described in more
    detail within RFC6857 http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_original_recipient;
           $header = $email->downgraded_original_recipient('...');

    The downgraded_original_recipient method is a shortcut for getting and
    setting the Downgraded-Original-Recipient header. This header is
    described in more detail within RFC6857 http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_rcpt_to;
           $header = $email->downgraded_rcpt_to('...');

    The downgraded_rcpt_to method is a shortcut for getting and setting the
    Downgraded-Rcpt-To header. This header is described in more detail
    within RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_references;
           $header = $email->downgraded_references('...');

    The downgraded_references method is a shortcut for getting and setting
    the Downgraded-References header. This header is described in more
    detail within RFC6857 http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_reply_to;
           $header = $email->downgraded_reply_to('...');

    The downgraded_reply_to method is a shortcut for getting and setting
    the Downgraded-Reply-To header. This header is described in more detail
    within RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_resent_bcc;
           $header = $email->downgraded_resent_bcc('...');

    The downgraded_resent_bcc method is a shortcut for getting and setting
    the Downgraded-Resent-Bcc header. This header is described in more
    detail within RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_resent_cc;
           $header = $email->downgraded_resent_cc('...');

    The downgraded_resent_cc method is a shortcut for getting and setting
    the Downgraded-Resent-Cc header. This header is described in more
    detail within RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_resent_from;
           $header = $email->downgraded_resent_from('...');

    The downgraded_resent_from method is a shortcut for getting and setting
    the Downgraded-Resent-From header. This header is described in more
    detail within RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_resent_reply_to;
           $header = $email->downgraded_resent_reply_to('...');

    The downgraded_resent_reply_to method is a shortcut for getting and
    setting the Downgraded-Resent-Reply-To header. This header is described
    in more detail within RFC5504 http://www.iana.org/go/rfc5504 and
    RFC6857 http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_resent_sender;
           $header = $email->downgraded_resent_sender('...');

    The downgraded_resent_sender method is a shortcut for getting and
    setting the Downgraded-Resent-Sender header. This header is described
    in more detail within RFC5504 http://www.iana.org/go/rfc5504 and
    RFC6857 http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_resent_to;
           $header = $email->downgraded_resent_to('...');

    The downgraded_resent_to method is a shortcut for getting and setting
    the Downgraded-Resent-To header. This header is described in more
    detail within RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_return_path;
           $header = $email->downgraded_return_path('...');

    The downgraded_return_path method is a shortcut for getting and setting
    the Downgraded-Return-Path header. This header is described in more
    detail within RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_sender;
           $header = $email->downgraded_sender('...');

    The downgraded_sender method is a shortcut for getting and setting the
    Downgraded-Sender header. This header is described in more detail
    within RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->downgraded_to;
           $header = $email->downgraded_to('...');

    The downgraded_to method is a shortcut for getting and setting the
    Downgraded-To header. This header is described in more detail within
    RFC5504 http://www.iana.org/go/rfc5504 and RFC6857
    http://www.iana.org/go/rfc6857.

        my $header = $email->ediint_features;
           $header = $email->ediint_features('...');

    The ediint_features method is a shortcut for getting and setting the
    EDIINT-Features header. This header is described in more detail within
    RFC6017 http://www.iana.org/go/rfc6017.

        my $header = $email->encoding;
           $header = $email->encoding('...');

    The encoding method is a shortcut for getting and setting the Encoding
    header. This header is described in more detail within RFC4021
    http://www.iana.org/go/rfc4021.

        my $header = $email->encrypted;
           $header = $email->encrypted('...');

    The encrypted method is a shortcut for getting and setting the
    Encrypted header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->errors_to;
           $header = $email->errors_to('...');

    The errors_to method is a shortcut for getting and setting the
    Errors-To header. This header is described in more detail within
    RFC2076 http://www.iana.org/go/rfc2076.

        my $header = $email->expires;
           $header = $email->expires('...');

    The expires method is a shortcut for getting and setting the Expires
    header. This header is described in more detail within RFC4021
    http://www.iana.org/go/rfc4021.

        my $header = $email->expiry_date;
           $header = $email->expiry_date('...');

    The expiry_date method is a shortcut for getting and setting the
    Expiry-Date header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->from;
           $header = $email->from('...');

    The from method is a shortcut for getting and setting the From header.
    This header is described in more detail within RFC5322
    http://www.iana.org/go/rfc5322 and RFC6854
    http://www.iana.org/go/rfc6854.

        my $header = $email->generate_delivery_report;
           $header = $email->generate_delivery_report('...');

    The generate_delivery_report method is a shortcut for getting and
    setting the Generate-Delivery-Report header. This header is described
    in more detail within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->header('X-Tag');
           $header = $email->header('X-Tag', '...');

    The header method is used for getting and setting arbitrary headers by
    name.

        my $header = $email->importance;
           $header = $email->importance('...');

    The importance method is a shortcut for getting and setting the
    Importance header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->in_reply_to;
           $header = $email->in_reply_to('...');

    The in_reply_to method is a shortcut for getting and setting the
    In-Reply-To header. This header is described in more detail within
    RFC5322 http://www.iana.org/go/rfc5322.

        my $header = $email->incomplete_copy;
           $header = $email->incomplete_copy('...');

    The incomplete_copy method is a shortcut for getting and setting the
    Incomplete-Copy header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->jabber_id;
           $header = $email->jabber_id('...');

    The jabber_id method is a shortcut for getting and setting the
    Jabber-ID header. This header is described in more detail within
    RFC7259 http://www.iana.org/go/rfc7259.

        my $header = $email->keywords;
           $header = $email->keywords('...');

    The keywords method is a shortcut for getting and setting the Keywords
    header. This header is described in more detail within RFC5322
    http://www.iana.org/go/rfc5322.

        my $header = $email->language;
           $header = $email->language('...');

    The language method is a shortcut for getting and setting the Language
    header. This header is described in more detail within RFC4021
    http://www.iana.org/go/rfc4021.

        my $header = $email->latest_delivery_time;
           $header = $email->latest_delivery_time('...');

    The latest_delivery_time method is a shortcut for getting and setting
    the Latest-Delivery-Time header. This header is described in more
    detail within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->list_archive;
           $header = $email->list_archive('...');

    The list_archive method is a shortcut for getting and setting the
    List-Archive header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->list_help;
           $header = $email->list_help('...');

    The list_help method is a shortcut for getting and setting the
    List-Help header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->list_id;
           $header = $email->list_id('...');

    The list_id method is a shortcut for getting and setting the List-ID
    header. This header is described in more detail within RFC4021
    http://www.iana.org/go/rfc4021.

        my $header = $email->list_owner;
           $header = $email->list_owner('...');

    The list_owner method is a shortcut for getting and setting the
    List-Owner header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->list_post;
           $header = $email->list_post('...');

    The list_post method is a shortcut for getting and setting the
    List-Post header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->list_subscribe;
           $header = $email->list_subscribe('...');

    The list_subscribe method is a shortcut for getting and setting the
    List-Subscribe header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->list_unsubscribe;
           $header = $email->list_unsubscribe('...');

    The list_unsubscribe method is a shortcut for getting and setting the
    List-Unsubscribe header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->mmhs_acp127_message_identifier;
           $header = $email->mmhs_acp127_message_identifier('...');

    The mmhs_acp127_message_identifier method is a shortcut for getting and
    setting the MMHS-Acp127-Message-Identifier header. This header is
    described in more detail within RFC6477 http://www.iana.org/go/rfc6477
    and ACP123 http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_codress_message_indicator;
           $header = $email->mmhs_codress_message_indicator('...');

    The mmhs_codress_message_indicator method is a shortcut for getting and
    setting the MMHS-Codress-Message-Indicator header. This header is
    described in more detail within RFC6477 http://www.iana.org/go/rfc6477
    and ACP123 http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_copy_precedence;
           $header = $email->mmhs_copy_precedence('...');

    The mmhs_copy_precedence method is a shortcut for getting and setting
    the MMHS-Copy-Precedence header. This header is described in more
    detail within RFC6477 http://www.iana.org/go/rfc6477 and ACP123
    http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_exempted_address;
           $header = $email->mmhs_exempted_address('...');

    The mmhs_exempted_address method is a shortcut for getting and setting
    the MMHS-Exempted-Address header. This header is described in more
    detail within RFC6477 http://www.iana.org/go/rfc6477 and ACP123
    http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_extended_authorisation_info;
           $header = $email->mmhs_extended_authorisation_info('...');

    The mmhs_extended_authorisation_info method is a shortcut for getting
    and setting the MMHS-Extended-Authorisation-Info header. This header is
    described in more detail within RFC6477 http://www.iana.org/go/rfc6477
    and ACP123 http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_handling_instructions;
           $header = $email->mmhs_handling_instructions('...');

    The mmhs_handling_instructions method is a shortcut for getting and
    setting the MMHS-Handling-Instructions header. This header is described
    in more detail within RFC6477 http://www.iana.org/go/rfc6477 and ACP123
    http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_message_instructions;
           $header = $email->mmhs_message_instructions('...');

    The mmhs_message_instructions method is a shortcut for getting and
    setting the MMHS-Message-Instructions header. This header is described
    in more detail within RFC6477 http://www.iana.org/go/rfc6477 and ACP123
    http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_message_type;
           $header = $email->mmhs_message_type('...');

    The mmhs_message_type method is a shortcut for getting and setting the
    MMHS-Message-Type header. This header is described in more detail
    within RFC6477 http://www.iana.org/go/rfc6477 and ACP123
    http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_originator_plad;
           $header = $email->mmhs_originator_plad('...');

    The mmhs_originator_plad method is a shortcut for getting and setting
    the MMHS-Originator-PLAD header. This header is described in more
    detail within RFC6477 http://www.iana.org/go/rfc6477 and ACP123
    http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_originator_reference;
           $header = $email->mmhs_originator_reference('...');

    The mmhs_originator_reference method is a shortcut for getting and
    setting the MMHS-Originator-Reference header. This header is described
    in more detail within RFC6477 http://www.iana.org/go/rfc6477 and ACP123
    http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_other_recipients_indicator_cc;
           $header = $email->mmhs_other_recipients_indicator_cc('...');

    The mmhs_other_recipients_indicator_cc method is a shortcut for getting
    and setting the MMHS-Other-Recipients-Indicator-CC header. This header
    is described in more detail within RFC6477
    http://www.iana.org/go/rfc6477 and ACP123
    http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_other_recipients_indicator_to;
           $header = $email->mmhs_other_recipients_indicator_to('...');

    The mmhs_other_recipients_indicator_to method is a shortcut for getting
    and setting the MMHS-Other-Recipients-Indicator-To header. This header
    is described in more detail within RFC6477
    http://www.iana.org/go/rfc6477 and ACP123
    http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_primary_precedence;
           $header = $email->mmhs_primary_precedence('...');

    The mmhs_primary_precedence method is a shortcut for getting and
    setting the MMHS-Primary-Precedence header. This header is described in
    more detail within RFC6477 http://www.iana.org/go/rfc6477 and ACP123
    http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mmhs_subject_indicator_codes;
           $header = $email->mmhs_subject_indicator_codes('...');

    The mmhs_subject_indicator_codes method is a shortcut for getting and
    setting the MMHS-Subject-Indicator-Codes header. This header is
    described in more detail within RFC6477 http://www.iana.org/go/rfc6477
    and ACP123 http://jcs.dtic.mil/j6/cceb/acps/acp123/ACP123B.pdf.

        my $header = $email->mt_priority;
           $header = $email->mt_priority('...');

    The mt_priority method is a shortcut for getting and setting the
    MT-Priority header. This header is described in more detail within
    RFC6758 http://www.iana.org/go/rfc6758.

        my $data = $email->message({
            text => '...',
            html => '...',
        });

    The message method is used for getting and setting the message
    attribute which is used along with the type attribute to determine how
    the email message should be constructed. This attribute can be assigned
    a string or hash reference with text and/or html key/value pairs.

        my $header = $email->message_context;
           $header = $email->message_context('...');

    The message_context method is a shortcut for getting and setting the
    Message-Context header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->message_id;
           $header = $email->message_id('...');

    The message_id method is a shortcut for getting and setting the
    Message-ID header. This header is described in more detail within
    RFC5322 http://www.iana.org/go/rfc5322.

        my $header = $email->message_type;
           $header = $email->message_type('...');

    The message_type method is a shortcut for getting and setting the
    Message-Type header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->obsoletes;
           $header = $email->obsoletes('...');

    The obsoletes method is a shortcut for getting and setting the
    Obsoletes header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->original_encoded_information_types;
           $header = $email->original_encoded_information_types('...');

    The original_encoded_information_types method is a shortcut for getting
    and setting the Original-Encoded-Information-Types header. This header
    is described in more detail within RFC4021
    http://www.iana.org/go/rfc4021.

        my $header = $email->original_from;
           $header = $email->original_from('...');

    The original_from method is a shortcut for getting and setting the
    Original-From header. This header is described in more detail within
    RFC5703 http://www.iana.org/go/rfc5703.

        my $header = $email->original_message_id;
           $header = $email->original_message_id('...');

    The original_message_id method is a shortcut for getting and setting
    the Original-Message-ID header. This header is described in more detail
    within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->original_recipient;
           $header = $email->original_recipient('...');

    The original_recipient method is a shortcut for getting and setting the
    Original-Recipient header. This header is described in more detail
    within RFC3798 http://www.iana.org/go/rfc3798 and RFC5337
    http://www.iana.org/go/rfc5337.

        my $header = $email->original_subject;
           $header = $email->original_subject('...');

    The original_subject method is a shortcut for getting and setting the
    Original-Subject header. This header is described in more detail within
    RFC5703 http://www.iana.org/go/rfc5703.

        my $header = $email->originator_return_address;
           $header = $email->originator_return_address('...');

    The originator_return_address method is a shortcut for getting and
    setting the Originator-Return-Address header. This header is described
    in more detail within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->pics_label;
           $header = $email->pics_label('...');

    The pics_label method is a shortcut for getting and setting the
    PICS-Label header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->prevent_nondelivery_report;
           $header = $email->prevent_nondelivery_report('...');

    The prevent_nondelivery_report method is a shortcut for getting and
    setting the Prevent-NonDelivery-Report header. This header is described
    in more detail within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->priority;
           $header = $email->priority('...');

    The priority method is a shortcut for getting and setting the Priority
    header. This header is described in more detail within RFC4021
    http://www.iana.org/go/rfc4021.

        my $header = $email->privicon;
           $header = $email->privicon('...');

    The privicon method is a shortcut for getting and setting the Privicon
    header. This header is described in more detail within
    http://www.iana.org/go/draft-koenig-privicons.

        my $header = $email->received;
           $header = $email->received('...');

    The received method is a shortcut for getting and setting the Received
    header. This header is described in more detail within RFC5322
    http://www.iana.org/go/rfc5322 and RFC5321
    http://www.iana.org/go/rfc5321.

        my $header = $email->received_spf;
           $header = $email->received_spf('...');

    The received_spf method is a shortcut for getting and setting the
    Received-SPF header. This header is described in more detail within
    RFC7208 http://www.iana.org/go/rfc7208.

        my $header = $email->references;
           $header = $email->references('...');

    The references method is a shortcut for getting and setting the
    References header. This header is described in more detail within
    RFC5322 http://www.iana.org/go/rfc5322.

        my $header = $email->reply_by;
           $header = $email->reply_by('...');

    The reply_by method is a shortcut for getting and setting the Reply-By
    header. This header is described in more detail within RFC4021
    http://www.iana.org/go/rfc4021.

        my $header = $email->reply_to;
           $header = $email->reply_to('...');

    The reply_to method is a shortcut for getting and setting the Reply-To
    header. This header is described in more detail within RFC5322
    http://www.iana.org/go/rfc5322.

        my $header = $email->require_recipient_valid_since;
           $header = $email->require_recipient_valid_since('...');

    The require_recipient_valid_since method is a shortcut for getting and
    setting the Require-Recipient-Valid-Since header. This header is
    described in more detail within RFC7293 http://www.iana.org/go/rfc7293.

        my $header = $email->resent_bcc;
           $header = $email->resent_bcc('...');

    The resent_bcc method is a shortcut for getting and setting the
    Resent-Bcc header. This header is described in more detail within
    RFC5322 http://www.iana.org/go/rfc5322.

        my $header = $email->resent_cc;
           $header = $email->resent_cc('...');

    The resent_cc method is a shortcut for getting and setting the
    Resent-Cc header. This header is described in more detail within
    RFC5322 http://www.iana.org/go/rfc5322.

        my $header = $email->resent_date;
           $header = $email->resent_date('...');

    The resent_date method is a shortcut for getting and setting the
    Resent-Date header. This header is described in more detail within
    RFC5322 http://www.iana.org/go/rfc5322.

        my $header = $email->resent_from;
           $header = $email->resent_from('...');

    The resent_from method is a shortcut for getting and setting the
    Resent-From header. This header is described in more detail within
    RFC5322 http://www.iana.org/go/rfc5322 and RFC6854
    http://www.iana.org/go/rfc6854.

        my $header = $email->resent_message_id;
           $header = $email->resent_message_id('...');

    The resent_message_id method is a shortcut for getting and setting the
    Resent-Message-ID header. This header is described in more detail
    within RFC5322 http://www.iana.org/go/rfc5322.

        my $header = $email->resent_reply_to;
           $header = $email->resent_reply_to('...');

    The resent_reply_to method is a shortcut for getting and setting the
    Resent-Reply-To header. This header is described in more detail within
    RFC5322 http://www.iana.org/go/rfc5322.

        my $header = $email->resent_sender;
           $header = $email->resent_sender('...');

    The resent_sender method is a shortcut for getting and setting the
    Resent-Sender header. This header is described in more detail within
    RFC5322 http://www.iana.org/go/rfc5322 and RFC6854
    http://www.iana.org/go/rfc6854.

        my $header = $email->resent_to;
           $header = $email->resent_to('...');

    The resent_to method is a shortcut for getting and setting the
    Resent-To header. This header is described in more detail within
    RFC5322 http://www.iana.org/go/rfc5322.

        my $header = $email->return_path;
           $header = $email->return_path('...');

    The return_path method is a shortcut for getting and setting the
    Return-Path header. This header is described in more detail within
    RFC5322 http://www.iana.org/go/rfc5322.

        my $header = $email->sio_label;
           $header = $email->sio_label('...');

    The sio_label method is a shortcut for getting and setting the
    SIO-Label header. This header is described in more detail within
    RFC7444 http://www.iana.org/go/rfc7444.

        my $header = $email->sio_label_history;
           $header = $email->sio_label_history('...');

    The sio_label_history method is a shortcut for getting and setting the
    SIO-Label-History header. This header is described in more detail
    within RFC7444 http://www.iana.org/go/rfc7444.

        my $result = $email->send($attributes, @transport_args);

    The send method generates a Email::Stuffer object based on the stashed
    and passed in attributes, and attempts delivery using the configured
    transport.

        my $header = $email->sender;
           $header = $email->sender('...');

    The sender method is a shortcut for getting and setting the Sender
    header. This header is described in more detail within RFC5322
    http://www.iana.org/go/rfc5322 and RFC6854
    http://www.iana.org/go/rfc6854.

        my $header = $email->sensitivity;
           $header = $email->sensitivity('...');

    The sensitivity method is a shortcut for getting and setting the
    Sensitivity header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->solicitation;
           $header = $email->solicitation('...');

    The solicitation method is a shortcut for getting and setting the
    Solicitation header. This header is described in more detail within
    RFC3865 http://www.iana.org/go/rfc3865.

        my $header = $email->subject;
           $header = $email->subject('...');

    The subject method is a shortcut for getting and setting the Subject
    header. This header is described in more detail within RFC5322
    http://www.iana.org/go/rfc5322.

        my $header = $email->supersedes;
           $header = $email->supersedes('...');

    The supersedes method is a shortcut for getting and setting the
    Supersedes header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->to;
           $header = $email->to('...');

    The to method is a shortcut for getting and setting the To header. This
    header is described in more detail within RFC5322
    http://www.iana.org/go/rfc5322.

        my $header = $email->vbr_info;
           $header = $email->vbr_info('...');

    The vbr_info method is a shortcut for getting and setting the VBR-Info
    header. This header is described in more detail within RFC5518
    http://www.iana.org/go/rfc5518.

        my $header = $email->x_archived_at;
           $header = $email->x_archived_at('...');

    The x_archived_at method is a shortcut for getting and setting the
    X-Archived-At header. This header is described in more detail within
    RFC5064 http://www.iana.org/go/rfc5064.

        my $header = $email->x400_content_identifier;
           $header = $email->x400_content_identifier('...');

    The x400_content_identifier method is a shortcut for getting and
    setting the X400-Content-Identifier header. This header is described in
    more detail within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->x400_content_return;
           $header = $email->x400_content_return('...');

    The x400_content_return method is a shortcut for getting and setting
    the X400-Content-Return header. This header is described in more detail
    within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->x400_content_type;
           $header = $email->x400_content_type('...');

    The x400_content_type method is a shortcut for getting and setting the
    X400-Content-Type header. This header is described in more detail
    within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->x400_mts_identifier;
           $header = $email->x400_mts_identifier('...');

    The x400_mts_identifier method is a shortcut for getting and setting
    the X400-MTS-Identifier header. This header is described in more detail
    within RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->x400_originator;
           $header = $email->x400_originator('...');

    The x400_originator method is a shortcut for getting and setting the
    X400-Originator header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->x400_received;
           $header = $email->x400_received('...');

    The x400_received method is a shortcut for getting and setting the
    X400-Received header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->x400_recipients;
           $header = $email->x400_recipients('...');

    The x400_recipients method is a shortcut for getting and setting the
    X400-Recipients header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

        my $header = $email->x400_trace;
           $header = $email->x400_trace('...');

    The x400_trace method is a shortcut for getting and setting the
    X400-Trace header. This header is described in more detail within
    RFC4021 http://www.iana.org/go/rfc4021.

POD ERRORS

    Hey! The above document had some coding errors, which are explained
    below:

    Around line 156:

      Unknown directive: =method

    Around line 165:

      Unknown directive: =method

    Around line 174:

      Unknown directive: =method

    Around line 183:

      Unknown directive: =method

    Around line 192:

      Unknown directive: =method

    Around line 201:

      Unknown directive: =method

    Around line 210:

      Unknown directive: =method

    Around line 219:

      Unknown directive: =method

    Around line 228:

      Unknown directive: =method

    Around line 237:

      Unknown directive: =method

    Around line 246:

      Unknown directive: =method

    Around line 255:

      Unknown directive: =method

    Around line 264:

      Unknown directive: =method

    Around line 273:

      Unknown directive: =method

    Around line 282:

      Unknown directive: =method

    Around line 291:

      Unknown directive: =method

    Around line 300:

      Unknown directive: =method

    Around line 309:

      Unknown directive: =method

    Around line 318:

      Unknown directive: =method

    Around line 327:

      Unknown directive: =method

    Around line 336:

      Unknown directive: =method

    Around line 345:

      Unknown directive: =method

    Around line 354:

      Unknown directive: =method

    Around line 363:

      Unknown directive: =method

    Around line 372:

      Unknown directive: =method

    Around line 381:

      Unknown directive: =method

    Around line 391:

      Unknown directive: =method

    Around line 401:

      Unknown directive: =method

    Around line 411:

      Unknown directive: =method

    Around line 420:

      Unknown directive: =method

    Around line 430:

      Unknown directive: =method

    Around line 439:

      Unknown directive: =method

    Around line 449:

      Unknown directive: =method

    Around line 458:

      Unknown directive: =method

    Around line 467:

      Unknown directive: =method

    Around line 477:

      Unknown directive: =method

    Around line 486:

      Unknown directive: =method

    Around line 496:

      Unknown directive: =method

    Around line 506:

      Unknown directive: =method

    Around line 516:

      Unknown directive: =method

    Around line 526:

      Unknown directive: =method

    Around line 536:

      Unknown directive: =method

    Around line 546:

      Unknown directive: =method

    Around line 556:

      Unknown directive: =method

    Around line 566:

      Unknown directive: =method

    Around line 576:

      Unknown directive: =method

    Around line 586:

      Unknown directive: =method

    Around line 595:

      Unknown directive: =method

    Around line 604:

      Unknown directive: =method

    Around line 613:

      Unknown directive: =method

    Around line 622:

      Unknown directive: =method

    Around line 631:

      Unknown directive: =method

    Around line 640:

      Unknown directive: =method

    Around line 650:

      Unknown directive: =method

    Around line 659:

      Unknown directive: =method

    Around line 666:

      Unknown directive: =method

    Around line 675:

      Unknown directive: =method

    Around line 684:

      Unknown directive: =method

    Around line 693:

      Unknown directive: =method

    Around line 702:

      Unknown directive: =method

    Around line 711:

      Unknown directive: =method

    Around line 720:

      Unknown directive: =method

    Around line 729:

      Unknown directive: =method

    Around line 738:

      Unknown directive: =method

    Around line 747:

      Unknown directive: =method

    Around line 756:

      Unknown directive: =method

    Around line 765:

      Unknown directive: =method

    Around line 774:

      Unknown directive: =method

    Around line 783:

      Unknown directive: =method

    Around line 792:

      Unknown directive: =method

    Around line 802:

      Unknown directive: =method

    Around line 812:

      Unknown directive: =method

    Around line 822:

      Unknown directive: =method

    Around line 832:

      Unknown directive: =method

    Around line 842:

      Unknown directive: =method

    Around line 852:

      Unknown directive: =method

    Around line 862:

      Unknown directive: =method

    Around line 872:

      Unknown directive: =method

    Around line 882:

      Unknown directive: =method

    Around line 892:

      Unknown directive: =method

    Around line 902:

      Unknown directive: =method

    Around line 912:

      Unknown directive: =method

    Around line 922:

      Unknown directive: =method

    Around line 932:

      Unknown directive: =method

    Around line 941:

      Unknown directive: =method

    Around line 953:

      Unknown directive: =method

    Around line 962:

      Unknown directive: =method

    Around line 971:

      Unknown directive: =method

    Around line 980:

      Unknown directive: =method

    Around line 989:

      Unknown directive: =method

    Around line 998:

      Unknown directive: =method

    Around line 1007:

      Unknown directive: =method

    Around line 1016:

      Unknown directive: =method

    Around line 1026:

      Unknown directive: =method

    Around line 1035:

      Unknown directive: =method

    Around line 1044:

      Unknown directive: =method

    Around line 1053:

      Unknown directive: =method

    Around line 1062:

      Unknown directive: =method

    Around line 1071:

      Unknown directive: =method

    Around line 1080:

      Unknown directive: =method

    Around line 1090:

      Unknown directive: =method

    Around line 1099:

      Unknown directive: =method

    Around line 1108:

      Unknown directive: =method

    Around line 1117:

      Unknown directive: =method

    Around line 1126:

      Unknown directive: =method

    Around line 1135:

      Unknown directive: =method

    Around line 1144:

      Unknown directive: =method

    Around line 1153:

      Unknown directive: =method

    Around line 1162:

      Unknown directive: =method

    Around line 1172:

      Unknown directive: =method

    Around line 1181:

      Unknown directive: =method

    Around line 1190:

      Unknown directive: =method

    Around line 1200:

      Unknown directive: =method

    Around line 1209:

      Unknown directive: =method

    Around line 1218:

      Unknown directive: =method

    Around line 1227:

      Unknown directive: =method

    Around line 1236:

      Unknown directive: =method

    Around line 1243:

      Unknown directive: =method

    Around line 1253:

      Unknown directive: =method

    Around line 1262:

      Unknown directive: =method

    Around line 1271:

      Unknown directive: =method

    Around line 1280:

      Unknown directive: =method

    Around line 1289:

      Unknown directive: =method

    Around line 1298:

      Unknown directive: =method

    Around line 1307:

      Unknown directive: =method

    Around line 1316:

      Unknown directive: =method

    Around line 1325:

      Unknown directive: =method

    Around line 1334:

      Unknown directive: =method

    Around line 1343:

      Unknown directive: =method

    Around line 1352:

      Unknown directive: =method

    Around line 1361:

      Unknown directive: =method

    Around line 1370:

      Unknown directive: =method

    Around line 1379:

      Unknown directive: =method