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, 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