Een e-mail verzenden met Perl

Een E Mail Verzenden Met Perl



Er bestaan ​​veel modules in Perl om een ​​e-mail te verzenden vanuit het Ubuntu-besturingssysteem. De module “Net::SMTP::SSL” is er één van. Elke geldige SMTP-server met de juiste gebruikersnaam en wachtwoord is vereist om een ​​e-mail te verzenden met behulp van deze Perl-module. De SMTP-server van het Gmail-account en de geldige gebruikersnaam en het geldige wachtwoord worden in deze tutorial gebruikt om een ​​e-mail te verzenden met behulp van het Perl-script van het Ubuntu-besturingssysteem. Het Gmail-account vereist echter enkele configuraties om de e-mail te verzenden via de Gmail SMTP-server. De “minder veilige app”-optie van elk Gmail-account is vereist om het verzenden van e-mail via de Gmail SMTP-server mogelijk te maken. Maar deze optie van het Gmail-account is verwijderd uit het jaar 2022. Nu moet je het 'App-wachtwoord' van het Gmail-account instellen om de e-mails te verzenden. U moet dit wachtwoord instellen voor het Gmail-account dat zal worden gebruikt voor het verzenden van de e-mails voordat u de voorbeelden van deze tutorial oefent.

Verschillende voorbeelden van het verzenden van een e-mail

De methoden voor het verzenden van een e-mail met behulp van de Gmail SMTP-server en een Gmail-account worden in dit deel van de zelfstudie getoond.

Voorbeeld 1: Een eenvoudige tekst-e-mail verzenden

Maak een Perl-bestand met het volgende script dat een eenvoudige tekst-e-mail verzendt via een Gmail SMTP-server. U moet het geldige e-mailadres en het wachtwoord dat is ingesteld voor het app-wachtwoord instellen in de variabelen $username en $password. De dummy-gebruikersnaam en het wachtwoord worden in het script toegewezen. De e-mail wordt niet verzonden als het app-wachtwoord niet correct is geconfigureerd. Stel vervolgens de geldige e-mailadressen van de ontvanger en de afzender in op de variabelen $to en $from om te controleren of de e-mail correct wordt verzonden. Het andere deel van het script blijft ongewijzigd. Er wordt een eenvoudig sms-bericht naar het e-mailadres van de ontvanger verzonden als de SMTP-server is verbonden en de gebruikersgegevens met succes zijn geverifieerd.







#!/usr/bin/perl

#Importeer de benodigde modules
gebruik strikt ;
gebruik Net::SMTP::SSL ;

#Declareer subroutine om e-mail te verzenden via de Gmail-server
sub verzendE-mail
{

#Gebruikersnaam en wachtwoord voor authenticatie
mijn $gebruikersnaam = 'gebruikersnaam@gmail.com' ;
mijn $wachtwoord = 'app-wachtwoord' ;

#Initialiseer de variabelen voor het verzenden van e-mail
mijn $aan = 'ontvanger@gmail.com' ;
mijn $van = 'Meher Nigar ' ;
mijn $onderwerp = 'Het is een testmail' ;
mijn $bericht = 'Hallo, e-mail verzenden met Perl.' ;

#Declareer de smtp-variabele
mijn $smtpServer ;

#Verbind met de Gmail smtp-server
als ( niet $smtpServer = Netto::SMTP::SSL- > nieuw ( 'smtp.gmail.com' , Haven => 465 , Foutopsporing => 1 ) )
{
de 'Kan geen verbinding maken met de SMTP-server. \N ' ;
}

#Controleer of de gebruikersnaam en het wachtwoord geldig zijn
$smtpServer- > auth ( $gebruikersnaam , $wachtwoord ) || de 'Authenticatiefout. \N ' ;

$smtpServer- > mail ( $van. ' \N ' ) ;
$smtpServer- > naar ( $aan. ' \N ' ) ;
$smtpServer- > gegevens ( ) ;
$smtpServer- > gegevens verzenden ( 'Van: ' . $vanaf. ' \N ' ) ;
$smtpServer- > gegevens verzenden ( 'Naar: ' . $naar . ' \N ' ) ;
$smtpServer- > gegevens verzenden ( 'Onderwerp: ' . $onderwerp . ' \N ' ) ;
$smtpServer- > gegevens verzenden ( ' \N ' ) ;

}

#Roep de subroutine op

&verzend een e-mail ( ) ;

Uitgang:



De volgende soortgelijke informatie verschijnt aan het begin van de uitvoer na het uitvoeren van het script als de e-mail succesvol is verzonden:







Wanneer u het e-mailadres van de ontvanger opent, ontvangt u de volgende e-mail in de inbox:

Voorbeeld 2: Een HTML-geformatteerde e-mail verzenden

Maak een Perl-bestand met het volgende script dat een HTML-geformatteerde e-mail verzendt via een Gmail SMTP-server. U moet een geldig e-mailadres en wachtwoord instellen zoals in het vorige voorbeeld. Stel vervolgens de geldige e-mailadressen van de ontvanger en de afzender in. De HTML-code wordt als e-mailbericht in het script toegevoegd. Het inhoudstype van de e-mail is ingesteld op text/html om de HTML-geformatteerde e-mail te verzenden. Het andere deel van het script is hetzelfde als het vorige voorbeeld. Er wordt een HTML-geformatteerde e-mail verzonden naar het e-mailadres van de ontvanger als de SMTP-server is verbonden en de gebruikersgegevens met succes zijn geverifieerd.

#!/usr/bin/perl

#Importeer de benodigde modules
gebruik strikt ;
gebruik Net::SMTP::SSL ;

#Declareer subroutine om e-mail te verzenden via de Gmail-server
sub verzendE-mail
{
#Gebruikersnaam en wachtwoord voor authenticatie
mijn $gebruikersnaam = 'gebruikersnaam@gmail.com' ;
mijn $wachtwoord = 'app-wachtwoord' ;

#Initialiseer de variabelen voor het verzenden van e-mail
mijn $aan = 'ontvanger@gmail.com' ;
mijn $van = 'Meher Nigar ' ;
mijn $onderwerp = 'Registratie voltooid' ;
mijn $bericht = '

Welkom op onze site

'
;

#Declareer de smtp-variabele
mijn $smtpServer ;

#Verbind met de Gmail smtp-server
als ( niet $smtpServer = Netto::SMTP::SSL- > nieuw ( 'smtp.gmail.com' , Haven => 465 , Foutopsporing => 1 ) )
{
de 'Kan geen verbinding maken met de SMTP-server. \N ' ;
}

#Controleer of de gebruikersnaam en het wachtwoord geldig zijn
$smtpServer- > auth ( $gebruikersnaam , $wachtwoord ) || de 'Authenticatiefout. \N ' ;

$smtpServer- > mail ( $van. ' \N ' ) ;
$smtpServer- > naar ( $aan. ' \N ' ) ;
$smtpServer- > gegevens ( ) ;
$smtpServer- > gegevens verzenden ( 'Van: ' . $vanaf. ' \N ' ) ;
$smtpServer- > gegevens verzenden ( 'Naar: ' . $naar . ' \N ' ) ;
$smtpServer- > gegevens verzenden ( 'Onderwerp: ' . $onderwerp . ' \N ' ) ;

#Stel het e-mailinhoudstype in op HTML voor het verzenden van html-geformatteerde e-mail
$smtpServer- > gegevens verzenden ( 'Inhoudstype: tekst/html; charset=utf-8 \N \N ' ) ;
$smtpServer- > gegevens verzenden ( $ bericht. ' \N ' ) ;
$smtpServer- > gegevens einde ( ) ;
$smtpServer- > ontslag nemen ;

}

#Roep de subroutine op

&verzend een e-mail ( ) ;

Uitgang:



De volgende soortgelijke informatie verschijnt aan het begin van de uitvoer na het uitvoeren van het script als de e-mail succesvol is verzonden:







Wanneer u het e-mailadres van de ontvanger opent, ontvangt u de volgende e-mail in de inbox:





Conclusie

De methoden voor het verzenden van een e-mail met Perl via de Gmail SMTP-server zijn niet zo eenvoudig als voorheen na het uitschakelen van de “minder veilige app” van het Gmail-account. Maar u kunt een e-mail verzenden door nu het app-wachtwoord in te stellen.