| Log-Dispatch documentation | Contained in the Log-Dispatch distribution. |
Log::Dispatch::Email::MailSend - Subclass of Log::Dispatch::Email that uses the Mail::Send module
version 2.29
use Log::Dispatch;
my $log = Log::Dispatch->new(
outputs => [
[
'Email::MailSend',
min_level => 'emerg',
to => [qw( foo@example.com bar@example.org )],
subject => 'Big error!'
]
],
);
$log->emerg("Something bad is happening");
This is a subclass of Log::Dispatch::Email that implements the send_email method using the Mail::Send module.
Since Mail::Send is a subclass of Mail::Mailer, you can change
how mail is sent from this module by simply useing Mail::Mailer
in your code before mail is sent. For example, to send mail via smtp,
you could do:
use Mail::Mailer 'smtp', Server => 'foo.example.com';
For more details, see the Mail::Mailer docs.
Dave Rolsky <autarch@urth.org>
This software is Copyright (c) 2011 by Dave Rolsky.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
| Log-Dispatch documentation | Contained in the Log-Dispatch distribution. |
package Log::Dispatch::Email::MailSend; BEGIN { $Log::Dispatch::Email::MailSend::VERSION = '2.29'; } use strict; use warnings; use Log::Dispatch::Email; use base qw( Log::Dispatch::Email ); use Mail::Send; sub send_email { my $self = shift; my %p = @_; my $msg = Mail::Send->new; $msg->to( join ',', @{ $self->{to} } ); $msg->subject( $self->{subject} ); # Does this ever work for this module? $msg->set( 'From', $self->{from} ) if $self->{from}; local $?; eval { my $fh = $msg->open or die "Cannot open handle to mail program"; $fh->print( $p{message} ) or die "Cannot print message to mail program handle"; $fh->close or die "Cannot close handle to mail program"; }; warn $@ if $@; } 1; # ABSTRACT: Subclass of Log::Dispatch::Email that uses the Mail::Send module
__END__