Sending email in Dancer using Dancer::Plugin::Email
Many sites use email forms to provide a fast and comfortable feedback method. The user just types their details and message and clicks on 'Submit' button, and the details are sent to a specified email address.
If you want to send email from your Dancer application, you can do so easily using the Dancer::Plugin::Email plugin.
How do I use it?
Dancer::Plugin::Email is very simple to use - in fact, there is only one
function, email, which sends email with the options specified.. The email
call with all options looks like:
email {
to => 'user@example.ru',
subject => 'I found a bug in your site',
msg => 'BlahBlahBlah',
attachment => ['/sbin/rm'],
type => 'text',
headers => {
"X-Mailer" => 'This fine Dancer application',
"X-Accept-Language" => 'en'
},
encoding => 'base64',
};
Simple example
use Dancer;
use Dancer::Plugin::Email;
post '/contact' => sub {
email {
to => '...',
subject => '...',
message => $msg,
};
};
Code recipes
Below we give you some code recipes to show how to use Dancer::Plugin::Email
Errors handling
# Handle Email Failures
post '/contact' => sub {
my $msg = email {
to => '...',
subject => '...',
message => $msg,
encoding => 'base64',
};
warn $msg->{string} if $msg->{type} eq 'failure';
};
Adding additional email headers
email {
to => '...',
subject => '...',
message => $msg,
headers => {
"X-Mailer" => 'This fine Dancer application',
"X-Accept-Language" => 'en'
}
};
Sending text and HTML multi-part messages
email {
to => '...',
subject => '...',
type => 'multi', # must be set to "multi" to send both parts
message => {
text => $txt,
html => $html,
},
};
AUTHOR
Kindly authored by Andrew Inishev, a student participating in the Google Code-In, mentored by David Precious - thanks Andrew for your contribution!