The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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' };

   $recipient = $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

   $result_message = $self->send_email( @args );

Sends emails. Returns the recipient address, throws on error. 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

Email::MIME
Email::Sender
Encode
MIME::Types
Moo
Unexpected
Web::Components::Role::TT

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