Enviar correo con PERL. Usado con Nagios.

Creamos un achivo con perl, en nuestro caso correo.pl:

# vi correo.pl
#!/usr/bin/perl
use Net::SMTP;
$destinatario=$ARGV[0];
$smtp= Net::SMTP->new('192.168.1.2');
$smtp->auth('usuario', 'password');
$smtp->mail('nagios@midominio.com');
$smtp->to("$destinatario");
$smtp->data();
$smtp->datasend("To: $destinatarion");
$smtp->datasend("Subject: información sujeto n");
$smtp->datasend("n");
$smtp->datasend("Este es un correo de prueba n");
$smtp->datasend();
$smtp->quit;

Y lo ejecutamos:

# ./correo.pl destinatario@sudominio.com

Nos puede servir si usamos Nagios, para realizar la notificacions por correo. En este caso lo podemos ajustar a nuestras necesidades:

#!/usr/bin/perl
use Net::SMTP;
$destinatario=$ARGV[0];
$tiposervicio=$ARGV[1];
$host=$ARGV[2];
$estado=$ARGV[3];
$ip=$ARGV[4];
$smtp= Net::SMTP->new('192.168.1.2);
$smtp->auth('usuario', 'password');
$smtp->mail('nagios@midominio.com');
$smtp->to("$destinatario");
$smtp->data();
$smtp->datasend("To: $destinatarion");
$smtp->datasend("Subject: NAGIOS - $tiposervicio: $estadon");
$smtp->datasend("n");
$smtp->datasend("Notificacion de tipo: $tiposervicion");
$smtp->datasend("Equipo: $host ($ip)n");
$smtp->datasend("Estado actual: $estadon");
$smtp->datasend();
$smtp->quit;

Para probarlo por ejemplo:

./correo.pl admin@midominio.com SrvFTP Serv3 Problem 192.168.1.3

A la ahora de aplicarlo en Nagios

./correo.pl $CONTACTEMAIL$ $NOTIFICATIONTYPE$ $HOSTNAME$ $HOSTSTATE$ $HOSTADDRESS$

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *