Send en e-post med Perl

Send En E Post Med Perl



Mange moduler finnes i Perl for å sende en e-post fra Ubuntu-operativsystemet. 'Net::SMTP::SSL'-modulen er en av dem. Enhver gyldig SMTP-server med riktig brukernavn og passord kreves for å sende en e-post med denne Perl-modulen. SMTP-serveren til Gmail-kontoen og det gyldige brukernavnet og passordet brukes i denne opplæringen for å sende en e-post med Perl-skriptet fra Ubuntu-operativsystemet. Gmail-kontoen krever imidlertid noen konfigurasjoner for å sende e-posten ved hjelp av Gmail SMTP-serveren. Alternativet 'mindre sikker app' for enhver Gmail-konto er nødvendig for å aktivere sending av e-post ved hjelp av Gmail SMTP-serveren. Men dette alternativet til Gmail-kontoen er fjernet fra år 2022. Nå må du angi 'App-passordet' til Gmail-kontoen for å sende e-postene. Du må angi dette passordet for Gmail-kontoen som skal brukes til å sende e-postene før du øver på eksemplene i denne opplæringen.

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å.