Introducción
En este tutorial veremos como envíar mensajes de email por medio de perl en UNIX, pues es el único que utiliza un programa de mensajería llamado "sendmail", a diferencia de Windows que usa POP.
Iniciando
Lo primero que debes de hacer es contactar al administrador de tu servico de alojamiento, o buscar en su ayuda, cual es la dirección de sendmail, pues tiende a variar dependiendo de la versión del sistema operativo, etc.
Enviando el mensaje
Para envíar el mensaje debes de abrir el programa sendamail con un objeto, al que en este caso llamaremos MAIL:
open (MAIL,"|/usr/lib/sendmail -t");
La dirección la debes de cambiar por la que te proporciono tu administrador, también debes de asegurarte que sepas que "switches" debes de utilizar, normalmente debes de usar el "-t", pero hay unos sistemas en que tambien debes de usar "-i". Estos switches deben de ir separados por espacios.
Lo que sigue de esto es la cabeza del mensaje:
print MAIL "To: to\@e.mail\n";
print MAIL "From: from\@e.mail\n";
print MAIL "Subject: Asunto del mensaje\n\n";
Estas son la más comunes pero también puedes incluir otras lineas, por ejemplo(CC:,BCC:), siempre debes de asegurarte que la última linea de la cabeza contenga don nuevas linea "\n\n", pues esto hace que los servicios de mensajería sepan que sigue el cuerpo del mensaje.
En el cuerpo del mensaje puedes ingresar la cantidad de lineas que deseas para tu mensaje, siguiendo el mismo formato:
print MAIL "Cuerpo del mensaje\n";
print MAIL "Puede contener muchas lineas\n";
Para inidicar que ya esta todo el mensaje creado, entonces debes de cerra el objeto, que en este caso es MAIL.
close(MAIL);
En el momento en que cierres el objeto, el mensaje será procesado por "sendmail", para envíarlo a la dirección que indicaste.
Código Final
#!/usr/bin/perl -w
use strict;
open (MAIL,"|/usr/lib/sendmail -t");
print MAIL "To: to\@e.mail\n";
print MAIL "From: from\@e.mail\n";
print MAIL "Subject: Asunto del mensaje\n\n";
print MAIL "Cuerpo del mensaje\n";
close(MAIL);
exit(1);