The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Catalyst::Action::RenderView::ErrorHandler::Action::Email - Catalyst ErrorHandler Action for Email

SYNOPSIS

        #In a configuration somewhere:
        error_handler => {
                'actions' => [
                        {
                                type => 'Log',
                                id => 'log-server',
                                level => 'error'
                        },
                        {
                                #Use this action
                                type => 'Email',
                                id => 'log-email',
                                #Regex to ignore all request paths with PhpMyAdmin or SqlDump init. Regex is case insensitive used.
                                ignorePath => '(PhpMyAdmin|SqlDump)',
                                #This should be a Catalyst::View::Email::Template or Catalyst::View::Email view.
                                view => 'ErrorMail',
                                #This options are copied into $c->stash->{email} for accesing from the view selected above
                                #For additional information look into the documentation of Catalyst::View::Email::Template
                                options => {
                                (
                                        #becomes $c->stash->{email}->{from} = ...
                                        from => 'MyApp - Homepage <homepage@domain.com>',
                                        to => 'you@domain.com',
                                        subject => 'Homepage - ErrorMail',
                                        #Template isn't needed, if you use the simple Catalyst::View::Email
                                        templates => [
                                                {
                                                        template        => 'ErrorMail.tt2',
                                                        content_type    => 'text/html',
                                                        charset         => 'utf-8',
                                                        encoding        => 'quoted-printable',
                                                        #View to render the Template
                                                        view            => 'HTMLEmail', 
                                                },
                                        ]
                                )}
                        }
                ],
                'handlers' => {
                (
                        '5xx' => {
                                template => 'error_internal.tt2',
                                actions => ['log-server','log-email']
                        },
                        '404' => {
                                template => 'error.tt2'
                        },
                        'fallback' =>  {
                                static => 'root/src/error.html', 
                                actions => ['log-email','log-email']
                        }
                )}
        } 
        
        #The template may look like:
        [% USE Dumper %]
        <!DOCTYPE html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Error Report</title>
        </head>

        <body>
        <p>There was a error in yor App:</p>
        <h4>Requested path:</h4>
        <p>[% base %][% c.request.path %]</p>

        <h4>Arguments:</h4>
        [% FOREACH a IN c.request.args %]
           <p>[% a | html %]</p>
        [% END %]

        <h4>Parameters:</h4>
        [% Dumper.dump(c.request.parameters) %]

        <h4>User Agent:</h4>
        <p>[% c.request.user_agent | html %]</p>

        <h4>Referer:</h4>
        <p>[% c.request.referer | html %]</p>

        <h4>Error messages:</h4>
        [% FOREACH e IN c.error %]
           <p>[% e | html %]</p>
        [% END %]

        [% IF c.response.code %]
        <h4>Error code:</h4>
        <p>[% c.response.code %]</p>
        [% END %]

        </body>
        </html>

DESCRIPTION

Used by Catalyst::Action::RenderView::ErrorHandler to send an Email if there is an error in your Catalyst application.

SEE ALSO

Catalyst::Action::RenderView::ErrorHandler Catalyst::Action::RenderView::ErrorHandler::Action::Log Catalyst::View::Email Catalyst::View::Email::Template

AUTHOR

Stefan Profanter, <profanter@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2011 by Stefan Profanter

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 92:

Non-ASCII character seen before =encoding in '[%'. Assuming UTF-8