| App-MadEye documentation | Contained in the App-MadEye distribution. |
App::MadEye::Plugin::Notify::Email - notify by email
type: map
mapping:
subject:
type: str
required: no
from_addr:
type: str
required: yes
to_addr:
type: str
required: yes
| App-MadEye documentation | Contained in the App-MadEye distribution. |
package App::MadEye::Plugin::Notify::Email; use strict; use warnings; use base qw/App::MadEye::Plugin::Base/; use Params::Validate; use MIME::Lite; use DateTime; sub notify : Hook { my ($self, $context, $args) = @_; my $conf = $self->{config}->{config}; my $subject = $conf->{subject} || '%s alert !!!'; my $from_addr = $conf->{from_addr} or die "missing from_addr"; my $to_addr = $conf->{to_addr} or die "missing to_addr"; while (my ($plugin, $results) = each %$args) { $plugin =~ s/.+::Agent:://; my $mail = MIME::Lite->new( 'To' => $to_addr, 'From' => $from_addr, 'Subject' => sprintf($subject, $plugin), 'Data' => $self->_format( $plugin, $results ), ); # warn $mail->as_string; $mail->send; } } sub _format { my ($self, $plugin, $results) = @_; my $res = $plugin . "\n\n"; for my $result (@$results) { $res .= "- $result->{target}\n"; $res .= "$result->{message}\n"; $res .= "\n\n"; } $res; } 1; __END__