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
    
        # message body (must set type to multi)
        $email->message({
            text => $text_message,
            html => $html_messase,
        })
    
        # email message content type (type: text, html, or multi)
        $email->send({ type => 'text' })
    
        # carbon-copy other email addresses
        $email->send({ cc => 'user@site.com' })
        $email->send({ cc => 'user_a@site.com, user_b@site.com, user_c@site.com' })
    
        # blind carbon-copy other email addresses
        $email->send({ bcc => 'user@site.com' })
        $email->send({ bcc => 'user_a@site.com, user_b@site.com, user_c@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->new({ headers  => { 'X-Mailer' => '...' } })
    
        # send additional headers implicitly
        $email->new({ x_mailer => '...' } # simpler
    
        # send mail via smtp
        {
            ...,
            driver  => 'smtp',
            host    => 'smtp.googlemail.com',
            user    => 'account@gmail.com',
            pass    => '****'
        }
    
        # send mail via smtp via Google (gmail)
        {
            ...,
            ssl     => 1,
            driver  => 'smtp',
            host    => 'smtp.googlemail.com',
            port    => 465,
            user    => 'account@gmail.com',
            pass    => '****'
        }
    
        # send mail via sendmail
        # path is optional if installed in a standard location
        {
            ...,
            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 140:

      Unknown directive: =method

    Around line 149:

      Unknown directive: =method

    Around line 158:

      Unknown directive: =method

    Around line 167:

      Unknown directive: =method

    Around line 176:

      Unknown directive: =method

    Around line 185:

      Unknown directive: =method

    Around line 194:

      Unknown directive: =method

    Around line 203:

      Unknown directive: =method

    Around line 212:

      Unknown directive: =method

    Around line 221:

      Unknown directive: =method

    Around line 230:

      Unknown directive: =method

    Around line 239:

      Unknown directive: =method

    Around line 248:

      Unknown directive: =method

    Around line 257:

      Unknown directive: =method

    Around line 266:

      Unknown directive: =method

    Around line 275:

      Unknown directive: =method

    Around line 284:

      Unknown directive: =method

    Around line 293:

      Unknown directive: =method

    Around line 302:

      Unknown directive: =method

    Around line 311:

      Unknown directive: =method

    Around line 320:

      Unknown directive: =method

    Around line 329:

      Unknown directive: =method

    Around line 338:

      Unknown directive: =method

    Around line 347:

      Unknown directive: =method

    Around line 356:

      Unknown directive: =method

    Around line 365:

      Unknown directive: =method

    Around line 375:

      Unknown directive: =method

    Around line 385:

      Unknown directive: =method

    Around line 395:

      Unknown directive: =method

    Around line 404:

      Unknown directive: =method

    Around line 414:

      Unknown directive: =method

    Around line 423:

      Unknown directive: =method

    Around line 433:

      Unknown directive: =method

    Around line 442:

      Unknown directive: =method

    Around line 451:

      Unknown directive: =method

    Around line 461:

      Unknown directive: =method

    Around line 470:

      Unknown directive: =method

    Around line 480:

      Unknown directive: =method

    Around line 490:

      Unknown directive: =method

    Around line 500:

      Unknown directive: =method

    Around line 510:

      Unknown directive: =method

    Around line 520:

      Unknown directive: =method

    Around line 530:

      Unknown directive: =method

    Around line 540:

      Unknown directive: =method

    Around line 550:

      Unknown directive: =method

    Around line 560:

      Unknown directive: =method

    Around line 570:

      Unknown directive: =method

    Around line 579:

      Unknown directive: =method

    Around line 588:

      Unknown directive: =method

    Around line 597:

      Unknown directive: =method

    Around line 606:

      Unknown directive: =method

    Around line 615:

      Unknown directive: =method

    Around line 624:

      Unknown directive: =method

    Around line 634:

      Unknown directive: =method

    Around line 643:

      Unknown directive: =method

    Around line 650:

      Unknown directive: =method

    Around line 659:

      Unknown directive: =method

    Around line 668:

      Unknown directive: =method

    Around line 677:

      Unknown directive: =method

    Around line 686:

      Unknown directive: =method

    Around line 695:

      Unknown directive: =method

    Around line 704:

      Unknown directive: =method

    Around line 713:

      Unknown directive: =method

    Around line 722:

      Unknown directive: =method

    Around line 731:

      Unknown directive: =method

    Around line 740:

      Unknown directive: =method

    Around line 749:

      Unknown directive: =method

    Around line 758:

      Unknown directive: =method

    Around line 767:

      Unknown directive: =method

    Around line 776:

      Unknown directive: =method

    Around line 786:

      Unknown directive: =method

    Around line 796:

      Unknown directive: =method

    Around line 806:

      Unknown directive: =method

    Around line 816:

      Unknown directive: =method

    Around line 826:

      Unknown directive: =method

    Around line 836:

      Unknown directive: =method

    Around line 846:

      Unknown directive: =method

    Around line 856:

      Unknown directive: =method

    Around line 866:

      Unknown directive: =method

    Around line 876:

      Unknown directive: =method

    Around line 886:

      Unknown directive: =method

    Around line 896:

      Unknown directive: =method

    Around line 906:

      Unknown directive: =method

    Around line 916:

      Unknown directive: =method

    Around line 925:

      Unknown directive: =method

    Around line 937:

      Unknown directive: =method

    Around line 946:

      Unknown directive: =method

    Around line 955:

      Unknown directive: =method

    Around line 964:

      Unknown directive: =method

    Around line 973:

      Unknown directive: =method

    Around line 982:

      Unknown directive: =method

    Around line 991:

      Unknown directive: =method

    Around line 1000:

      Unknown directive: =method

    Around line 1010:

      Unknown directive: =method

    Around line 1019:

      Unknown directive: =method

    Around line 1028:

      Unknown directive: =method

    Around line 1037:

      Unknown directive: =method

    Around line 1046:

      Unknown directive: =method

    Around line 1055:

      Unknown directive: =method

    Around line 1064:

      Unknown directive: =method

    Around line 1074:

      Unknown directive: =method

    Around line 1083:

      Unknown directive: =method

    Around line 1092:

      Unknown directive: =method

    Around line 1101:

      Unknown directive: =method

    Around line 1110:

      Unknown directive: =method

    Around line 1119:

      Unknown directive: =method

    Around line 1128:

      Unknown directive: =method

    Around line 1137:

      Unknown directive: =method

    Around line 1146:

      Unknown directive: =method

    Around line 1156:

      Unknown directive: =method

    Around line 1165:

      Unknown directive: =method

    Around line 1174:

      Unknown directive: =method

    Around line 1184:

      Unknown directive: =method

    Around line 1193:

      Unknown directive: =method

    Around line 1202:

      Unknown directive: =method

    Around line 1211:

      Unknown directive: =method

    Around line 1220:

      Unknown directive: =method

    Around line 1227:

      Unknown directive: =method

    Around line 1237:

      Unknown directive: =method

    Around line 1246:

      Unknown directive: =method

    Around line 1255:

      Unknown directive: =method

    Around line 1264:

      Unknown directive: =method

    Around line 1273:

      Unknown directive: =method

    Around line 1282:

      Unknown directive: =method

    Around line 1291:

      Unknown directive: =method

    Around line 1300:

      Unknown directive: =method

    Around line 1309:

      Unknown directive: =method

    Around line 1318:

      Unknown directive: =method

    Around line 1327:

      Unknown directive: =method

    Around line 1336:

      Unknown directive: =method

    Around line 1345:

      Unknown directive: =method

    Around line 1354:

      Unknown directive: =method

    Around line 1363:

      Unknown directive: =method