Ulike eksempler på å sende en e-post
Metodene for å sende en e-post ved hjelp av Gmail SMTP-serveren og en Gmail-konto vises i denne delen av opplæringen.
Eksempel 1: Sende en enkel tekst-e-post
Lag en Perl-fil med følgende skript som sender en enkel tekst-e-post ved hjelp av en Gmail SMTP-server. Du må angi den gyldige e-postadressen og passordet som er angitt for app-passordet i variablene $username og $password. Dummy-brukernavnet og passordet er tildelt i skriptet. E-posten vil ikke bli sendt hvis app-passordet ikke er riktig konfigurert. Deretter setter du den gyldige mottakeren og avsenderens e-postadresse til variablene $to og $from for å sjekke om e-posten er sendt på riktig måte. Den andre delen av manuset forblir uendret. En enkel tekstmelding sendes til mottakerens e-postadresse hvis SMTP-serveren er tilkoblet og brukerens informasjon er autentisert.
#!/usr/bin/perl
#Importer nødvendige moduler
bruk strenge ;
bruk Nett::SMTP::SSL ;
#Erklær subrutine for å sende e-post ved hjelp av Gmail-serveren
sub sendE-post
{
#Brukernavn og passord for autentisering
mitt $brukernavn = 'brukernavn@gmail.com' ;
$passordet mitt = 'app-passord' ;
#Initialiser variablene for å sende e-post
min $to = 'mottaker@gmail.com' ;
min $ fra = 'Meher Nigar
$emnet mitt = 'Det er en test-e-post' ;
$meldingen min = 'Hei, sender e-post med Perl.' ;
#Deklarer smtp-variabelen
min $smtpServer ;
#Koble til Gmail smtp-serveren
hvis ( ikke $smtpServer = Nett::SMTP::SSL- > ny ( 'smtp.gmail.com' , Havn => 465 , Feilsøk => 1 ) )
{
de 'Kan ikke koble til SMTP-serveren. \n ' ;
}
#Sjekk at brukernavn og passord er gyldige
$smtpServer- > auth ( $brukernavn , $password ) || de 'Godkjenningsfeil. \n ' ;
$smtpServer- > post ( $fra. ' \n ' ) ;
$smtpServer- > til ( $to. ' \n ' ) ;
$smtpServer- > data ( ) ;
$smtpServer- > datasend ( 'Fra: ' . $fra . ' \n ' ) ;
$smtpServer- > datasend ( 'Til: ' . $til . ' \n ' ) ;
$smtpServer- > datasend ( 'Emne: ' . $emne . ' \n ' ) ;
$smtpServer- > datasend ( ' \n ' ) ;
}
#Ring subrutinen
&Send e-post ( ) ;
Produksjon:
Følgende lignende informasjon vises i begynnelsen av utdata etter utføring av skriptet hvis e-posten ble sendt:
Når du åpner mottakerens e-postadresse, vil du få følgende e-post i innboksen:
Eksempel 2: Sende en HTML-formatert e-post
Lag en Perl-fil med følgende skript som sender en HTML-formatert e-post ved hjelp av en Gmail SMTP-server. Du må angi en gyldig e-postadresse og passord som i forrige eksempel. Deretter angir du gyldig mottaker- og avsender-e-postadresse. HTML-koden legges til som e-postmeldingen i skriptet. Innholdstypen til e-posten er satt til tekst/html for å sende den HTML-formaterte e-posten. Den andre delen av skriptet er den samme som forrige eksempel. En HTML-formatert e-post sendes til mottakerens e-postadresse hvis SMTP-serveren er tilkoblet og brukerens informasjon er autentisert.
#!/usr/bin/perl#Importer nødvendige moduler
bruk strenge ;
bruk Nett::SMTP::SSL ;
#Erklær subrutine for å sende e-post ved hjelp av Gmail-serveren
sub sendE-post
{
#Brukernavn og passord for autentisering
mitt $brukernavn = 'brukernavn@gmail.com' ;
$passordet mitt = 'app-passord' ;
#Initialiser variablene for å sende e-post
min $to = 'mottaker@gmail.com' ;
min $ fra = 'Meher Nigar
$emnet mitt = 'Registrering fullført' ;
$meldingen min = '
Velkommen til nettstedet vårt
' ;#Deklarer smtp-variabelen
min $smtpServer ;
#Koble til Gmail smtp-serveren
hvis ( ikke $smtpServer = Nett::SMTP::SSL- > ny ( 'smtp.gmail.com' , Havn => 465 , Feilsøk => 1 ) )
{
de 'Kan ikke koble til SMTP-serveren. \n ' ;
}
#Sjekk at brukernavn og passord er gyldige
$smtpServer- > auth ( $brukernavn , $password ) || de 'Godkjenningsfeil. \n ' ;
$smtpServer- > post ( $fra. ' \n ' ) ;
$smtpServer- > til ( $to. ' \n ' ) ;
$smtpServer- > data ( ) ;
$smtpServer- > datasend ( 'Fra: ' . $fra . ' \n ' ) ;
$smtpServer- > datasend ( 'Til: ' . $til . ' \n ' ) ;
$smtpServer- > datasend ( 'Emne: ' . $emne . ' \n ' ) ;
#Sett innholdstypen for e-post til HTML for sending av html-formatert e-post
$smtpServer- > datasend ( 'Innholdstype: text/html; charset=utf-8 \n \n ' ) ;
$smtpServer- > datasend ( $melding. ' \n ' ) ;
$smtpServer- > dataend ( ) ;
$smtpServer- > slutte ;
}
#Ring subrutinen
&Send e-post ( ) ;
Produksjon:
Følgende lignende informasjon vises i begynnelsen av utdata etter utføring av skriptet hvis e-posten ble sendt:
Når du åpner mottakerens e-postadresse, vil du få følgende e-post i innboksen:
Konklusjon
Metodene for å sende en e-post ved hjelp av Perl gjennom Gmail SMTP-serveren er ikke like enkle som før etter å ha deaktivert den 'mindre sikre appen' til Gmail-kontoen. Men du kan sende en e-post ved å angi app-passordet nå.