Perl - Invio di e-mail

Utilizzo dell'utilità sendmail

Invio di un messaggio semplice

Se stai lavorando su una macchina Linux / Unix, puoi semplicemente usare sendmailutility all'interno del programma Perl per inviare e-mail. Di seguito è riportato uno script di esempio che può inviare un'e-mail a un determinato ID e-mail. Assicurati solo che il percorso specificato per l'utilità sendmail sia corretto. Questo potrebbe essere diverso per la tua macchina Linux / Unix.

#!/usr/bin/perl
 
$to = '[email protected]';
$from = '[email protected]';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';
 
open(MAIL, "|/usr/sbin/sendmail -t");
 
# Email Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
# Email Body
print MAIL $message;

close(MAIL);
print "Email Sent Successfully\n";

In realtà, lo script sopra è uno script di posta elettronica client, che redigerà una bozza di posta elettronica e la invierà al server in esecuzione localmente sulla tua macchina Linux / Unix. Questo script non sarà responsabile dell'invio di e-mail alla destinazione effettiva. Quindi devi assicurarti che il server di posta elettronica sia configurato correttamente e in esecuzione sulla tua macchina per inviare e-mail all'ID e-mail fornito.

Invio di un messaggio HTML

Se desideri inviare e-mail in formato HTML utilizzando sendmail, devi semplicemente aggiungere Content-type: text/html\n nella parte dell'intestazione dell'email come segue:

#!/usr/bin/perl
 
$to = '[email protected]';
$from = '[email protected]';
$subject = 'Test Email';
$message = '<h1>This is test email sent by Perl Script</h1>';
 
open(MAIL, "|/usr/sbin/sendmail -t");
 
# Email Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
print MAIL "Content-type: text/html\n";
# Email Body
print MAIL $message;

close(MAIL);
print "Email Sent Successfully\n";

Utilizzo del modulo MIME :: Lite

Se stai lavorando su una macchina Windows, non avrai accesso all'utilità sendmail. Ma hai un'alternativa per scrivere il tuo client di posta elettronica usando il modulo MIME: Lite perl. Puoi scaricare questo modulo da MIME-Lite-3.01.tar.gz e installarlo sulla tua macchina Windows o Linux / Unix. Per installarlo segui i semplici passaggi:

$tar xvfz MIME-Lite-3.01.tar.gz
$cd MIME-Lite-3.01
$perl Makefile.PL
$make
$make install

Questo è tutto e avrai il modulo MIME :: Lite installato sulla tua macchina. Ora sei pronto per inviare la tua email con semplici script spiegati di seguito.

Invio di un messaggio semplice

Di seguito è riportato uno script che si occuperà di inviare e-mail all'ID e-mail fornito -

#!/usr/bin/perl
use MIME::Lite;
 
$to = '[email protected]';
$cc = '[email protected]';
$from = '[email protected]';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';

$msg = MIME::Lite->new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Data     => $message
                 );
                 
$msg->send;
print "Email Sent Successfully\n";

Invio di un messaggio HTML

Se desideri inviare e-mail in formato HTML utilizzando sendmail, devi semplicemente aggiungere Content-type: text/html\nnella parte di intestazione dell'email. Di seguito è riportato lo script, che si occuperà di inviare e-mail in formato HTML -

#!/usr/bin/perl
use MIME::Lite;
 
$to = '[email protected]';
$cc = '[email protected]';
$from = '[email protected]';
$subject = 'Test Email';
$message = '<h1>This is test email sent by Perl Script</h1>';

$msg = MIME::Lite->new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Data     => $message
                 );
                 
$msg->attr("content-type" => "text/html");         
$msg->send;
print "Email Sent Successfully\n";

Invio di un allegato

Se desideri inviare un allegato, il seguente script serve allo scopo:

#!/usr/bin/perl
use MIME::Lite;
 
$to = '[email protected]';
$cc = '[email protected]';
$from = '[email protected]';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';

$msg = MIME::Lite->new(
                 From     => $from,
                 To       => $to,
                 Cc       => $cc,
                 Subject  => $subject,
                 Type     => 'multipart/mixed'
                 );
                 
# Add your text message.
$msg->attach(Type         => 'text',
             Data         => $message
             );
            
# Specify your file as attachement.
$msg->attach(Type         => 'image/gif',
             Path         => '/tmp/logo.gif',
             Filename     => 'logo.gif',
             Disposition  => 'attachment'
            );       
$msg->send;
print "Email Sent Successfully\n";

Puoi allegare tutti i file che desideri nella tua e-mail utilizzando il metodo attach ().

Utilizzo del server SMTP

Se la tua macchina non esegue un server di posta elettronica, puoi utilizzare qualsiasi altro server di posta disponibile nella posizione remota. Ma per utilizzare qualsiasi altro server di posta elettronica è necessario disporre di un ID, la sua password, URL, ecc. Una volta che hai tutte le informazioni richieste, devi semplicemente fornire quelle informazioni insend() metodo come segue -

$msg->send('smtp', "smtp.myisp.net", AuthUser=>"id", AuthPass=>"password" );

Puoi contattare l'amministratore del tuo server di posta elettronica per avere le informazioni sopra utilizzate e se un ID utente e una password non sono già disponibili, il tuo amministratore può crearli in pochi minuti.