Catalyst::View::Email:UserpContributed Perl Catalyst::View::Email::Template(3)NAMECatalyst::View::Email::Template - Send Templated Email from Catalyst
SYNOPSIS
Sends templated mail, based upon your default view. It captures the
output of the rendering path, slurps in based on mime-types and
assembles a multi-part email using Email::MIME::Creator and sends it
out.
CONFIGURATION
WARNING: since version 0.10 the configuration options slightly changed!
Use the helper to create your view:
$ script/myapp_create.pl view Email::Template Email::Template
For basic configuration look at "CONFIGURATION" in
Catalyst::View::Email.
In your app configuration (example in YAML):
View::Email::Template:
# Optional prefix to look somewhere under the existing configured
# template paths.
# Default: none
template_prefix: email
# Define the defaults for the mail
default:
# Defines the default view used to render the templates.
# If none is specified neither here nor in the stash
# Catalysts default view is used.
# Warning: if you don't tell Catalyst explicit which of your views should
# be its default one, C::V::Email::Template may choose the wrong one!
view: TT
SENDING EMAIL
Sending email works just like for Catalyst::View::Email but by
specifying the template instead of the body and forwarding to your
Email::Template view:
sub controller : Private {
my ( $self, $c ) = @_;
$c->stash->{email} = {
to => 'jshirley@gmail.com',
cc => 'abraxxa@cpan.org',
bcc => 'hidden@secret.com hidden2@foobar.com',
from => 'no-reply@foobar.com',
subject => 'I am a Catalyst generated email',
template => 'test.tt',
content_type => 'multipart/alternative'
};
$c->forward( $c->view('Email::Template') );
}
Alternatively if you want more control over your templates you can use
the following idiom to override the defaults. If charset and encoding
given, the body become properly encoded.
templates => [
{
template => 'email/test.html.tt',
content_type => 'text/html',
charset => 'utf-8',
encoding => 'quoted-printable',
view => 'TT',
},
{
template => 'email/test.plain.mason',
content_type => 'text/plain',
charset => 'utf-8',
encoding => 'quoted-printable',
view => 'Mason',
}
]
HANDLING ERRORS
See "HANDLING ERRORS" in Catalyst::View::Email.
METHODS
generate_part
Generates a MIME part to include in the email. Since the email is
template based every template piece is a separate part that is
included in the email.
process
The process method is called when the view is dispatched to. This
creates the multipart message and then sends the message contents
off to Catalyst::View::Email for processing, which in turn hands
off to Email::Sender::Simple.
TODO
ATTACHMENTS
There needs to be a method to support attachments. What I am thinking
is something along these lines:
attachments => [
# Set the body to a file handle object, specify content_type and
# the file name. (name is what it is sent at, not the file)
{ body => $fh, name => "foo.pdf", content_type => "application/pdf" },
# Or, specify a filename that is added, and hey, encoding!
{ filename => "foo.gif", name => "foo.gif", content_type => "application/pdf", encoding => "quoted-printable" },
# Or, just a path to a file, and do some guesswork for the content type
"/path/to/somefile.pdf",
]
SEE ALSO
Catalyst::View::Email - Send plain boring emails with Catalyst
Catalyst::Manual - The Catalyst Manual
Catalyst::Manual::Cookbook - The Catalyst Cookbook
AUTHORS
J. Shirley <jshirley@gmail.com>
Simon Elliott <cpan@browsing.co.uk>
Alexander Hartmaier <abraxxa@cpan.org>
LICENSE
This library is free software, you can redistribute it and/or modify it
under the same terms as Perl itself.
perl v5.14.12011-01-17Catalyst::View::Email::Template(3)