Skip to content

pjfl/p5-web-components-role-email

Repository files navigation

Travis CI Badge Coverage Badge CPAN Badge Kwalitee Badge

Name

Web::Components::Role::Email - Role for sending emails

Synopsis

use Moo;

with 'Web::Components::Role::Email';

my $post = { attributes      => {
                charset      => 'UTF-8',
                content_type => 'text/html' },
             body            => 'Message body text',
             from            => 'Senders email address',
             host            => 'localhost',
             mailer          => 'SMTP',
             subject         => 'Email subject string',
             to              => 'Recipients email address' };

$message = $self->send_email( $post );

# or

($id, $message) = $self->send_email( $post );

Description

Supports multiple transports, attachments and multilingual templates for message bodies

Configuration and Environment

Defines no attributes

Subroutines/Methods

send_email

$response_message = $self->send_email( @args );
($id, $response_message) = $self->send_email( @args );

Sends emails. Returns the response message in a scalar context, throws on error. In a list context returns the id of the sent message and the response message. The id is parsed from the response message using a simple regular expression . The @args can be a list of keys and values or a hash reference. The attributes defined are;

  • attachments

    A hash reference whose key / value pairs are the attachment name and path name. Encoding and content type are derived from the file name extension

  • attributes

    A hash reference that is applied to the email when it is created. Typical keys are; content_type and charset. See Email::MIME. This is merged onto the email_attr configuration hash reference if it exists

  • body

    Text for the body of the email message

  • from

    Email address of the sender

  • host

    Which host should send the email. Defaults to localhost

  • mailer

    Which mailer should be used to send the email. Defaults to SMTP

  • stash

    Hash reference used by the template rendering to supply values for variable replacement

  • subject

    Subject string. Defaults to No Subject

  • subprovider

    If this object reference exists and an email is generated from a template then it is expected to provide a loc function which will be make callable from the template

  • functions

    A list of functions provided by the "subprovider" object. This list of functions will be bound into the stash instead of the default loc function

  • template

    If it exists then the template is rendered and used as the body contents. See the layout attribute

  • to

    Email address of the recipient

  • transport_attr

    A hash reference passed to the transport constructor. This is merged in with the transport_attr configuration hash reference if it exists

try_to_send_email

Just like "send_email" but logs at the error level instead of throwing

Diagnostics

None

Dependencies

Incompatibilities

There are no known incompatibilities in this module

Bugs and Limitations

There are no known bugs in this module. Please report problems to http://rt.cpan.org/NoAuth/Bugs.html?Dist=Web-Components-Role-Email. Patches are welcome

Acknowledgements

Larry Wall - For the Perl programming language

Author

Peter Flanigan, <pjfl@cpan.org>

License and Copyright

Copyright (c) 2017 Peter Flanigan. All rights reserved

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic

This program is distributed in the hope that it will be useful, but WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE

About

Role for sending emails

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages