[Perl] Mail Sender en Perl

Salvador Ortiz Garcia sog@msg.com.mx
09 Jul 2003 21:44:11 -0500


On Tue, 2003-07-08 at 18:38, Pablo Fischer wrote:
> Que tal!
> 
> Pues aquí dando lata de nuevo.
> 
> Ahora preguntando si alguien de la lista tiene algo de información (pdfs, 
> html, docbook, urls, tips, comentarios, etc) sobre crear un Mail Sender en 
> Perl.
> 
> ¿Qué quiero decir con esto?
> 
> Crear algo así como mi propio MTA, en el cual pueda mandar mensajes. Es decir, 
> no depender si el servidor es postfix, sendmail, ms, exim, etc. 
> 
> Algo parecido a:
> http://www.cs.cf.ac.uk/Dave/PERL/node180.html

Primero una aclaración conceptual:

El software que anotas NO es un MTA, es simplemente un _cliente_ SMTP.

Un MTA (Mail Transfer Agent), para calificar como tal debe incluir
cuando menos: cliente, server, encolador y despachador; Perfectamente
posible de hacerse en perl, pero no es un proyecto trivial.

Lo que es trivial es hacer tu Mail Sender que le entrege a tu MTA
(postfix, senmail, etc) propio o de terceros un mensaje, pues todo lo
que necesitas es Net::SMTP:

  #!/usr/local/bin/perl -w
  use Net::SMTP;
        
  $smtp = Net::SMTP->new('some.host.com'); # Tu servidor
 
  $smtp->mail($ENV{USER}); # Quién envía
  $smtp->to('usuario@un.dominiox.com'); # Destinatario
 
  $smtp->data();  # Comienzan los datos
  $smtp->datasend("To: postmaster\n");  # Headers
  $smtp->datasend("Subject: Prueba\n");
  ...
  $smtp->datasend("\n"); # Fin de headers
  $smtp->datasend("Un simple mensaje de prueba\n");
  $smtp->dataend(); # Fin de los datos.
                                                                                
           $smtp->quit;





-- 
Salvador Ortiz Garcia <sog@msg.com.mx>
Matías Software Group