Diversi esempi di invio di un'e-mail
I metodi per inviare un'email utilizzando il server SMTP Gmail e un account Gmail sono mostrati in questa parte del tutorial.
Esempio 1: invio di un'e-mail di testo semplice
Crea un file Perl con il seguente script che invia una semplice email di testo utilizzando un server SMTP Gmail. È necessario impostare l'indirizzo e-mail valido e la password impostata per la password dell'app nelle variabili $username e $password. Il nome utente e la password fittizi vengono assegnati nello script. L'e-mail non verrà inviata se la password dell'app non è configurata correttamente. Successivamente, imposta gli indirizzi e-mail del destinatario e del mittente validi sulle variabili $to e $from per verificare se l'e-mail viene inviata correttamente. L'altra parte della sceneggiatura rimane invariata. Un semplice messaggio di testo viene inviato all'indirizzo e-mail del destinatario se il server SMTP è connesso e le informazioni dell'utente vengono autenticate con successo.
#!/usr/bin/perl
#Importa i moduli necessari
usare rigoroso ;
utilizzare Net::SMTP::SSL ;
#Dichiara la subroutine per inviare email utilizzando il server Gmail
sub invia e-mail
{
#Nome utente e password per l'autenticazione
il mio $nome utente = 'nomeutente@gmail.com' ;
la mia $password = 'password dell'app' ;
#Inizializza le variabili per l'invio di email
il mio $a = 'ricevitore@gmail.com' ;
il mio $da = 'Meher Nigar
il mio $oggetto = 'È un'e-mail di prova' ;
il mio $messaggio = 'Ciao, invio e-mail utilizzando Perl.' ;
#Dichiara la variabile smtp
il mio $smtpServer ;
#Connettiti al server SMTP di Gmail
Se ( non $serverserver = Rete::SMTP::SSL- > nuovo ( 'smtp.gmail.com' , Porta => 465 , Debug => 1 ) )
{
IL 'Impossibile connettersi al server SMTP. \N ' ;
}
#Verifica che nome utente e password siano validi
$smtpServer- > aut ( $nome utente , $password ) || IL 'Errore di autenticazione. \N ' ;
$smtpServer- > posta ( $da. ' \N ' ) ;
$smtpServer- > A ( $a. ' \N ' ) ;
$smtpServer- > dati ( ) ;
$smtpServer- > datasend ( 'Da: ' . $da . ' \N ' ) ;
$smtpServer- > datasend ( 'A: ' . $a. ' \N ' ) ;
$smtpServer- > datasend ( 'Soggetto: ' . $oggetto. ' \N ' ) ;
$smtpServer- > datasend ( ' \N ' ) ;
}
#Richiama la subroutine
&invia una email ( ) ;
Produzione:
Le seguenti informazioni simili vengono visualizzate all'inizio dell'output dopo l'esecuzione dello script se l'e-mail è stata inviata correttamente:
Quando apri l'indirizzo email del destinatario, riceverai la seguente email nella posta in arrivo:
Esempio 2: invio di un'e-mail formattata HTML
Crea un file Perl con il seguente script che invia un'e-mail in formato HTML utilizzando un server SMTP Gmail. Devi impostare un indirizzo email e una password validi come nell'esempio precedente. Successivamente, imposta gli indirizzi email validi del destinatario e del mittente. Il codice HTML viene aggiunto come messaggio di posta elettronica nello script. Il tipo di contenuto dell'e-mail è impostato su text/html per inviare l'e-mail in formato HTML. L'altra parte dello script è la stessa dell'esempio precedente. Un'e-mail in formato HTML viene inviata all'indirizzo e-mail del destinatario se il server SMTP è connesso e le informazioni dell'utente vengono autenticate correttamente.
#!/usr/bin/perl#Importa i moduli necessari
usare rigoroso ;
utilizzare Net::SMTP::SSL ;
#Dichiara la subroutine per inviare email utilizzando il server Gmail
sub invia e-mail
{
#Nome utente e password per l'autenticazione
il mio $nome utente = 'nomeutente@gmail.com' ;
la mia $password = 'password dell'app' ;
#Inizializza le variabili per l'invio di email
il mio $a = 'ricevitore@gmail.com' ;
il mio $da = 'Meher Nigar
il mio $oggetto = 'Registrazione completata' ;
il mio $messaggio = '
Benvenuti nel nostro sito
' ;#Dichiara la variabile smtp
il mio $smtpServer ;
#Connettiti al server SMTP di Gmail
Se ( non $serverserver = Rete::SMTP::SSL- > nuovo ( 'smtp.gmail.com' , Porta => 465 , Debug => 1 ) )
{
IL 'Impossibile connettersi al server SMTP. \N ' ;
}
#Verifica che nome utente e password siano validi
$smtpServer- > aut ( $nome utente , $password ) || IL 'Errore di autenticazione. \N ' ;
$smtpServer- > posta ( $da. ' \N ' ) ;
$smtpServer- > A ( $a. ' \N ' ) ;
$smtpServer- > dati ( ) ;
$smtpServer- > datasend ( 'Da: ' . $da . ' \N ' ) ;
$smtpServer- > datasend ( 'A: ' . $a. ' \N ' ) ;
$smtpServer- > datasend ( 'Soggetto: ' . $oggetto. ' \N ' ) ;
#Imposta il tipo di contenuto dell'e-mail su HTML per l'invio di e-mail in formato HTML
$smtpServer- > datasend ( 'Tipo di contenuto: text/html; charset=utf-8 \N \N ' ) ;
$smtpServer- > datasend ( $messaggio. ' \N ' ) ;
$smtpServer- > fine dei dati ( ) ;
$smtpServer- > esentato ;
}
#Richiama la subroutine
&invia una email ( ) ;
Produzione:
Le seguenti informazioni simili vengono visualizzate all'inizio dell'output dopo l'esecuzione dello script se l'e-mail è stata inviata correttamente:
Quando apri l'indirizzo email del destinatario, riceverai la seguente email nella posta in arrivo:
Conclusione
I metodi per inviare un'e-mail utilizzando Perl tramite il server SMTP di Gmail non sono così semplici come prima dopo aver disabilitato 'l'app meno sicura' dell'account Gmail. Ma puoi inviare un'e-mail impostando la password dell'app adesso.