NAME

Log::Fine::Handle::Email::EmailSender - Email log messages using Email::Sender

SYNOPSIS

Provides messaging to one or more email addresses via the Email::Sender module.

use Log::Fine;
use Log::Fine::Formatter::Template;
use Log::Fine::Handle::Email;
use Log::Fine::Levels::Syslog qw( :macros :masks );

# Get a new logger
my $log = Log::Fine->logger("foo");

# Create a formatter object for subject line
my $subjfmt = Log::Fine::Formatter::Template
    ->new( name     => 'template1',
           template => "%%LEVEL%% : The angels have my blue box" );

# Create a formatted msg template
my $msgtmpl = <<EOF;
The program, $0, has encountered the following error condition:

%%MSG%% at %%TIME%%

Contact Operations at 1-800-555-5555 immediately!
EOF

my $bodyfmt = Log::Fine::Formatter::Template
    ->new( name     => 'template2',
           template => $msgtmpl );

# Define an optional transport
my $transport = Email::Sender::Transport::SMTP->new({
  host => 'smtp.example.com',
  port => 2525,
});

# register an email handle
my $handle = Log::Fine::Handle::Email
    ->new( name => 'email0',
           mask => LOGMASK_EMERG | LOGMASK_ALERT | LOGMASK_CRIT,
           subject_formatter => $subjfmt,
           body_formatter    => $bodyfmt,
           header_from       => 'alerts@example.com',
           header_to         => 'critical_alerts@example.com',
           email_handle      => 'EmailSender',  # <-- default value
           envelope          => {
               to        => [ 'critical_alerts@example.com',
                              'chris@example.com',
                              'joe@example.com'],
               from      => 'alerts@example.com',
               transport => $transport,
           }
         );

# register the handle
$log->registerHandle($handle);

# log something
$log->log(CRIT, "Beware the weeping angels");

DESCRIPTION

Log::Fine::Handle::Email::EmailSender provides formatted message delivery to one or more email addresses via the Email::Sender module. Users who wish to use this module are strongly encouraged to read the following documentation:

Be especially mindful of the following environment variables as they will take precedence when defining a transport:

  • EMAIL_SENDER_TRANSPORT

  • EMAIL_SENDER_TRANSPORT_host

  • EMAIL_SENDER_TRANSPORT_port

See Email::Sender::Manual::Quickstart for further details.

METHODS

new

Constructor for this method

Parameters

In addition to the hash parameters specified in "msgWrite" in Log::Fine::Handle::Email, this class accepts the following keys:

  • envelope

    [optional] hash ref containing envelope information for email:

    + to

    array ref containing one or more destination addresses

    + from

    String containing email sender

    * transport

    [optional] An Email::Sender::Transport object. See Email::Sender::Manual for further details.

msgWrite

Sends given message via Email::Sender module. Note that "_fatal" in Log::Fine will be called should there be a failure of delivery.

See also "msgWrite" in Log::Fine::Handle

BUGS

Please report any bugs or feature requests to bug-log-fine-handle-email at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Log-Fine. 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 Log::Fine

You can also look for information at:

REVISION INFORMATION

$Id: 9ab2e8476a522cdb4b42f695614cee270fdf1e59 $

AUTHOR

Christopher M. Fuhrman, <cfuhrman at panix.com>

SEE ALSO

perl, Log::Fine, Log::Fine::Handle, Log::Fine::Handle::Email, Mail::RFC822::Address

COPYRIGHT & LICENSE

Copyright (c) 2012 Christopher M. Fuhrman, All rights reserved.

This program is free software licensed under the...

The BSD License

The full text of the license can be found in the LICENSE file included with this module.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 145:

Expected text after =item, not a bullet