Attenzione: l'articolo è stato scritto da oltre 1 anno, le informazioni in esso contenute potrebbero essere datate e non più attuali.

Inviare una email attraverso uno script Perl

Vediamo in quesa mini guida gli elementi essenziali per inviare una email attraverso uno script Perl.

In tal modo possiamo automatizzare l'invio posta anche con allegati senza alcun nostro intervento, ad esempio io lo uso per scaricare un file da internet e inviarlo per email ad un collega. Lo script viene eseguito automaticamente una volta a settimana quindi io posso dimenticarmene totalmente :)

In rete ci sono molti tutorial che spiegano come fare e lo spiegano sicuramente con maggiore competenza di me, l'unico difetto è che i tutorial sono lunghissimi e si perdono tra compilazioni, configurazioni di sendmail e altro, tutte cose utili ma se dobbiamo svolgere un singolo compito non è necessario diventare sistemisti ;)

Passiamo allora alla pratica. In una installazione già funzionante di Perl installiamo il modulo MIME:Lite. Su Ubuntu basta:

apt-get install libmime-lite-perl

e verrano installati tutti i pacchetti necessari.

Passiamo poi allo script. Non mi dilungo sulla scrittura di uno script ma vi elenco solo gli elementi essenziali. Nelle prime righe dobbiamo  dichiarare l'uso del modulo:

use MIME::Lite;

e poi andremo a richiamare il modulo per l'effettivo invio della email:

$msg = MIME::Lite->new(

         From => 'mittente@example.com',

         To => 'ldestinatario@example.com',

         Subject => 'Invio report settimanale',

         Type => 'multipart/mixed'

);

$msg->attach(

         Type => 'application/pdf',

          Path => "/home/vargas/percorso_verso_il_file/file.pdf",

         Filename => "file.pdf"

);

$msg->attach(

         Type => 'TEXT',

         Data => 'Ti invio il report settimale, che sudata scaricartelo e inviartelo :) Buona lettura!'

);

$msg->send('smtp', 'out.alice.it');

le righe credo siano autoesplicative. L'unica osservazioni che mi preme fare riguarda l'ultima riga ovvero l'invio vero e proprio.

Per l'invio si può utilizzare un mail server installato in locale, ad esempio sendmail, postfix o qmail oppure il proprio isp. Io ho scelto per semplicità questo secondo metodo per via della sua semplicità.

N.B. è possibile usare anche altri server smtp come quello di Gmail ma la configurazione di fa più ostica e visto che potevo evitarlo mi sono affidato a quello della mia connessione internet.

Nessun voto finora