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, <
[email protected]>
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