Perl – Net::SMTP::TLS – Mandar correos via SMTP con TLS

By Published On: 29 de septiembre de 2011Categories: GNU-Linux, Programacion2 Comments

Hola Mundo! 

Gracias a la necesidad de mandar notificaciónes de Nagios utilizando un servidor SMTP remoto busque la manera de crear un script que me permita tal tarea, y adivine quien me ayudo? PERL!

Gracias a Perl y el modulo Net::SMTP::TLS pude crear un script que me permitio mandar correos a un servidor SMTP remoto que requiera TLS y autentificación (Por ejemplo Gmail como en este caso).

Antes de darles algunos ejemplos del script para que lo adapten a sus necesidades les voy a mostrar como instalar el modulo Net::SMTP::TLS, lo primero es entrar al «cpan shell«:

# perl -MCPAN -e shell

cpan shell — CPAN exploration and modules installation (v1.9456)
Enter ‘h’ for help.
cpan

[1]>

Luego instalamos el modulo:

cpan[1]> install Net::SMTP::TLS


Empezará a descargar el modulo, automáticamente lo instalará y estaremos listos para usarlo.

Abrimos un editor de textos y nos guiamos de este script de ejemplo:

====================================================

#!/usr/bin/perl -w


use Net::SMTP::TLS;


$destinatario=$ARGV[1];
$mensaje=$ARGV[2];


my $smtp = new Net::SMTP::TLS(‘smtp.gmail.com’,
Hello        =>       ‘smtp.gmail.com’,
Port         =>       587,
User        =>       ‘[email protected]’,
Password=>       ‘Contraseña18’);


$smtp->mail(‘[email protected]’);
$smtp->to(«$destinatario»);
$smtp->data;
$smtp->datasend(«To: $destinatarion»);
$smtp->datasend(«From: [email protected]’);
$smtp->datasend(«n»);

$mailer->datasend(«Subject: Este es el asunton»);
$mailer->datasend(«n»);
$mailer->datasend(«$mensajen»);
$mailer->dataend();
$mailer->quit;

======================================================

En el ejemplo anterior se puede ver como se carga el modulo Net::SMTP::TLS, y declaran dos variables, las cuales seran igual al primer y el segundo argumento, luego el script se autentificará con los datos pre-establecidos y mandara el correo.

Guardamos nuestro script, le damos permisos de ejecución «chmod +x script.pl», y lo utilizamos de la siguiente manera:

./script.pl [email protected] «Este es un mensaje enviado desde Perl»

Y listo, luego les cuento como utilizar este script en las notificaciones de Nagios.

Saludos!

2 Comments

  1. Javi 17 de octubre de 2011 at 17:56 - Reply

    me da errores! :S

  2. Test 19 de octubre de 2011 at 02:19 - Reply

    Que error te da?

Leave A Comment