NAME
Email::Template - Send "multipart/alternative" (text & html) email from a Template
VERSION
Version 0.02
SYNOPSIS
use Email::Template;
Email::Template->send( '/path/to/email/template.tt2',
{
From => 'sender@domain.tld',
To => 'recipient@domain.tld',
Subject => 'Email::Template is easy to use',
tt_vars => { key => $value, ... },
convert => { rightmargin => 80, no_rowspacing => 1, ... }
}
) or warn "could not send the email";
DESCRIPTION
This is a fairly simple interface to generate "multipart/alternative" emails with both "text/html" and "text/plain" components using a single HTML based Template Toolkit template.
The HTML, once processed by Template Toolkit, is converted to text using HTML::FormatText::WithLinks::AndTables. Both HTML and text versions are then attached and sent via MIME::Lite.
Be sure to validate your sender and recipient addresses first (ie. Email::Valid->rfc822 ).
A NOTE ABOUT CHARACTER SETS
If your template files are non-ASCII, be sure to pass { ENCODING => 'utf-8' } (or whatever) in the tt_new argument; otherwise, you will get gibberish in the emails.
The text/html and text/plain parts are encoded using utf-8 by default, or pass in 'charset' to choose a different one (e.g. iso-8859-1).
EXPORTS
None by default.
METHODS
send
The first argument to send() is the path to the Template file. Absolute paths are allowed. If the path is relative, it works the same as when using Template Toolkit.
The second argument to send() is a hash reference containing the following possible options.
MIME::Lite
# REQUIRED
From => 'sender@domain.tld',
To => 'recipient@domain.tld',
Subject => 'a subject for your email',
# OPTIONAL
# charset to use for the text and html MIME parts (default utf-8)
charset => 'utf-8',
# arguments to be passed to MIME::Lite send()
mime_lite_send => ['smtp', 'some.host', Debug=>1 ],
# additional attachments to add via MIME::Lite attach()
mime_lite_attach => [ {Type=>...,Data=>...}, ... ],
# do not send(), just return the prepared MIME::Lite object
return_mime_lite => 1,
Template Toolkit
# OPTIONAL
# configuration options passed into Template->new()
tt_new => { INCLUDE_PATH => '/path/to/templates', ... },
# variables to interpolate via Template->process()
tt_vars => { key => $value, ... },
HTML::FormatText::WithLinks::AndTables
# OPTIONAL
# configuration options passed into convert()
convert => { rm => 80, no_rowspacing => 1, ... }
NOTE: all additional arguments not explicitely mentioned above will be passed into MIME::Lite->new()
Assuming "return_mime_lite => 1" was not passed in the arguments list, on success send() returns the value of MIME::Lite->as_string(), or on failure returns nothing.
SEE ALSO
Template
MIME::Lite
HTML::FormatText::WithLinks::AndTables
AUTHOR
Shaun Fryer, <pause.cpan.org at sourcery.ca>
CONTRIBUTORS
Ryan D Johnson, <ryan@innerfence.com>
, charset support
BUGS
Please report any bugs or feature requests to bug-email-template at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Email-Template. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Email::Template
You can also look for information at:
RT: CPAN's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
ACKNOWLEDGEMENTS
Everybody. :) http://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants
COPYRIGHT & LICENSE
Copyright 2008 Shaun Fryer, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.