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.