Hoy vamos a ver un ejemplo sencillo de programación en Perl, mediante el cual vamos a enviar un correo electrónico. Utilizamos el módulo MIME::Lite, que permite mandar contenido html (u otro MIME) en el cuerpo del mensaje.
El ejemplo que os voy a mostrar envía el correo utilizando el método de envío por defecto que tenga el sistema en el que se ejecuta (si es Linux, normalmente sendmail). Ahí va:
#!/usr/bin/perl -w use MIME::Lite; use strict; my $subject = "Asunto del correo"; my $from = "test\@dominio.com"; my $to = "destinatario\@dominio.com"; my $body = "Esto es el cuerpo del correo ..."; my $msg = MIME::Lite->new ( Subject => $subject, From => $from, To => $to, Type => 'text/html', Data => $body ); $msg->send();
Básicamente declaramos las variables que contienen el asunto, destinatarios, cuerpo del mensaje, etc y abrimos la clase para trabajar con ella, finalmente enviamos el correo.
En la propia página de cpan hay bastantes ejemplos y muy útiles, os dejo un par de ellos, podéis ver los demás aquí.
Agregar una imagen a un mensaje con varios destinatarios:
### Start with a simple text message: $msg = MIME::Lite->new( From =>'me@myhost.com', To =>'you@yourhost.com', Cc =>'some@other.com, some@more.com', Subject =>'A message with 2 parts...', Type =>'TEXT', Data =>"Here's the GIF file you wanted" ); ### Attach a part... the make the message a multipart automatically: $msg->attach( Type =>'image/gif', Path =>'aaa000123.gif', Filename =>'logo.gif' );
Utilizar otro método de envío de correo si no tenemos sendmail:
### Do something like this in your 'main': if ($I_DONT_HAVE_SENDMAIL) { MIME::Lite->send('smtp', $host, Timeout=>60 AuthUser=>$user, AuthPass=>$pass); } ### Now this will do the right thing: $msg->send; ### will now use Net::SMTP as shown above