Send en e-mail ved hjælp af Perl

Send En E Mail Ved Hjaelp Af Perl



Der findes mange moduler i Perl til at sende en e-mail fra Ubuntu-operativsystemet. 'Net::SMTP::SSL'-modulet er et af dem. Enhver gyldig SMTP-server med det korrekte brugernavn og adgangskode er påkrævet for at sende en e-mail ved hjælp af dette Perl-modul. Gmail-kontoens SMTP-server og det gyldige brugernavn og adgangskoden bruges i denne vejledning til at sende en e-mail ved hjælp af Perl-scriptet fra Ubuntu-operativsystemet. Gmail-kontoen kræver dog nogle konfigurationer for at sende e-mailen ved hjælp af Gmail SMTP-serveren. Muligheden 'mindre sikker app' for enhver Gmail-konto er påkrævet for at aktivere afsendelse af e-mail ved hjælp af Gmail SMTP-serveren. Men denne mulighed for Gmail-kontoen er fjernet fra år 2022. Nu skal du indstille 'App-adgangskoden' til Gmail-kontoen for at sende e-mails. Du skal indstille denne adgangskode til Gmail-kontoen, som skal bruges til at sende e-mails, før du øver dig på eksemplerne i denne vejledning.

Forskellige eksempler på at sende en e-mail

Metoderne til at sende en e-mail ved hjælp af Gmail SMTP-serveren og en Gmail-konto er vist i denne del af selvstudiet.

Eksempel 1: Afsendelse af en simpel tekst-e-mail

Opret en Perl-fil med følgende script, der sender en simpel tekst-e-mail ved hjælp af en Gmail SMTP-server. Du skal indstille den gyldige e-mailadresse og adgangskoden, der er indstillet til app-adgangskoden, i variablerne $username og $password. Dummy-brugernavnet og adgangskoden er tildelt i scriptet. E-mailen vil ikke blive sendt, hvis app-adgangskoden ikke er konfigureret korrekt. Indstil derefter den gyldige modtager og afsenderens e-mailadresser til variablerne $to og $from for at kontrollere, om e-mailen er sendt korrekt. Den anden del af manuskriptet forbliver uændret. En simpel tekstbesked sendes til modtagerens e-mail-adresse, hvis SMTP-serveren er tilsluttet, og brugerens oplysninger er blevet godkendt.







#!/usr/bin/perl

#Importer nødvendige moduler
brug strenge ;
brug Net::SMTP::SSL ;

#Erklær underrutine til at sende e-mail ved hjælp af Gmail-serveren
sub sendE-mail
{

#Brugernavn og adgangskode til godkendelse
mit $brugernavn = 'brugernavn@gmail.com' ;
mit $password = 'app-adgangskode' ;

#Initialiser variablerne til afsendelse af e-mail
min $til = 'receiver@gmail.com' ;
min $ fra = 'Meher Nigar ' ;
mit $emne = 'Det er en test-e-mail' ;
min $besked = 'Hej, sender e-mail ved hjælp af Perl.' ;

#Deklarer smtp-variablen
min $smtpServer ;

#Opret forbindelse til Gmail smtp-serveren
hvis ( ikke $smtpServer = Net::SMTP::SSL- > ny ( 'smtp.gmail.com' , Havn => 465 , Fejlfinde => 1 ) )
{
det 'Kan ikke oprette forbindelse til SMTP-serveren. \n ' ;
}

#Kontroller, at brugernavn og adgangskode er gyldige
$smtpServer- > auth ( $brugernavn , $password ) || det 'Godkendelsesfejl. \n ' ;

$smtpServer- > post ( $ fra. ' \n ' ) ;
$smtpServer- > til ( $til. ' \n ' ) ;
$smtpServer- > data ( ) ;
$smtpServer- > datasend ( 'Fra: ' . $ fra . ' \n ' ) ;
$smtpServer- > datasend ( 'Til: ' . $til . ' \n ' ) ;
$smtpServer- > datasend ( 'Emne:' . $emne. ' \n ' ) ;
$smtpServer- > datasend ( ' \n ' ) ;

}

#Ring til subrutinen

&Send e-mail ( ) ;

Produktion:



Følgende lignende oplysninger vises i begyndelsen af ​​outputtet efter eksekvering af scriptet, hvis e-mailen blev sendt med succes:







Når du åbner modtagerens e-mailadresse, får du følgende e-mail i indbakken:

Eksempel 2: Afsendelse af en HTML-formateret e-mail

Opret en Perl-fil med følgende script, der sender en HTML-formateret e-mail ved hjælp af en Gmail SMTP-server. Du skal angive en gyldig e-mailadresse og adgangskode som i det foregående eksempel. Indstil derefter den gyldige modtager- og afsender-e-mailadresse. HTML-koden tilføjes som e-mail-meddelelsen i scriptet. Indholdstypen for e-mailen er indstillet til teksten/html for at sende den HTML-formaterede e-mail. Den anden del af scriptet er den samme som det foregående eksempel. En HTML-formateret e-mail sendes til modtagerens e-mail-adresse, hvis SMTP-serveren er tilsluttet, og brugerens oplysninger er blevet godkendt.

#!/usr/bin/perl

#Importer nødvendige moduler
brug strenge ;
brug Net::SMTP::SSL ;

#Erklær underrutine til at sende e-mail ved hjælp af Gmail-serveren
sub sendE-mail
{
#Brugernavn og adgangskode til godkendelse
mit $brugernavn = 'brugernavn@gmail.com' ;
mit $password = 'app-adgangskode' ;

#Initialiser variablerne til afsendelse af e-mail
min $til = 'receiver@gmail.com' ;
min $ fra = 'Meher Nigar ' ;
mit $emne = 'Registrering gennemført' ;
min $besked = '

Velkommen til vores side

'
;

#Deklarer smtp-variablen
min $smtpServer ;

#Opret forbindelse til Gmail smtp-serveren
hvis ( ikke $smtpServer = Net::SMTP::SSL- > ny ( 'smtp.gmail.com' , Havn => 465 , Fejlfinde => 1 ) )
{
det 'Kan ikke oprette forbindelse til SMTP-serveren. \n ' ;
}

#Kontroller, at brugernavn og adgangskode er gyldige
$smtpServer- > auth ( $brugernavn , $password ) || det 'Godkendelsesfejl. \n ' ;

$smtpServer- > post ( $ fra. ' \n ' ) ;
$smtpServer- > til ( $til. ' \n ' ) ;
$smtpServer- > data ( ) ;
$smtpServer- > datasend ( 'Fra: ' . $ fra . ' \n ' ) ;
$smtpServer- > datasend ( 'Til: ' . $til . ' \n ' ) ;
$smtpServer- > datasend ( 'Emne:' . $emne . ' \n ' ) ;

#Indstil e-mail-indholdstypen til HTML for at sende html-formaterede e-mails
$smtpServer- > datasend ( 'Indholdstype: text/html; charset=utf-8 \n \n ' ) ;
$smtpServer- > datasend ( $besked. ' \n ' ) ;
$smtpServer- > data slut ( ) ;
$smtpServer- > Afslut ;

}

#Ring til subrutinen

&Send e-mail ( ) ;

Produktion:



Følgende lignende oplysninger vises i begyndelsen af ​​outputtet efter eksekvering af scriptet, hvis e-mailen blev sendt med succes:







Når du åbner modtagerens e-mailadresse, får du følgende e-mail i indbakken:





Konklusion

Metoderne til at sende en e-mail ved hjælp af Perl gennem Gmail SMTP-serveren er ikke så nemme som før efter deaktivering af den 'mindre sikre app' på Gmail-kontoen. Men du kan sende en e-mail ved at indstille app-adgangskoden nu.