Enviar un correo electrónico usando Perl

Enviar Un Correo Electronico Usando Perl



Existen muchos módulos en Perl para enviar un correo electrónico desde el sistema operativo Ubuntu. El módulo “Net::SMTP::SSL” es uno de ellos. Se requiere cualquier servidor SMTP válido con el nombre de usuario y contraseña correctos para enviar un correo electrónico utilizando este módulo Perl. En este tutorial se utilizan el servidor SMTP de la cuenta de Gmail y el nombre de usuario y contraseña válidos para enviar un correo electrónico utilizando el script Perl del sistema operativo Ubuntu. Sin embargo, la cuenta de Gmail requiere algunas configuraciones para enviar el correo electrónico utilizando el servidor SMTP de Gmail. Se requiere la opción de 'aplicación menos segura' de cualquier cuenta de Gmail para permitir el envío de correo electrónico utilizando el servidor SMTP de Gmail. Pero esta opción de la cuenta de Gmail se elimina a partir del año 2022. Ahora, debe configurar la 'Contraseña de la aplicación' de la cuenta de Gmail para enviar los correos electrónicos. Debes configurar esta contraseña para la cuenta de Gmail que se utilizará para enviar los correos electrónicos antes de practicar los ejemplos de este tutorial.

Diferentes ejemplos de envío de un correo electrónico

En esta parte del tutorial se muestran los métodos para enviar un correo electrónico utilizando el servidor SMTP de Gmail y una cuenta de Gmail.

Ejemplo 1: envío de un correo electrónico de texto simple

Cree un archivo Perl con el siguiente script que envíe un correo electrónico de texto simple utilizando un servidor SMTP de Gmail. Debe configurar la dirección de correo electrónico válida y la contraseña establecida para la contraseña de la aplicación en las variables $username y $password. El nombre de usuario y la contraseña ficticios se asignan en el script. El correo electrónico no se enviará si la contraseña de la aplicación no está configurada correctamente. A continuación, configure las direcciones de correo electrónico válidas del destinatario y del remitente en las variables $to y $from para comprobar si el correo electrónico se envía correctamente. La otra parte del guión se mantiene sin cambios. Se envía un simple mensaje de texto a la dirección de correo electrónico del destinatario si el servidor SMTP está conectado y la información del usuario se autentica correctamente.







#!/usr/bin/perl

#Importar módulos necesarios
usar estricto ;
utilizar Net::SMTP::SSL ;

#Declarar subrutina para enviar correo electrónico usando el servidor de Gmail
subenviarcorreo electrónico
{

  #Nombre de usuario y contraseña para autenticación
mi $ nombre de usuario = 'username@gmail.com' ;
mi $contraseña = 'contraseña de la aplicación' ;

  #Inicializar las variables para enviar correo electrónico
mi $ a = 'receiver@gmail.com' ;
mi $ de = 'Meher Nigar ' ;
mi $tema = 'Es un correo electrónico de prueba' ;
mi $mensaje = 'Hola, enviando correo electrónico usando Perl.' ;

  #Declarar la variable smtp
mi servidor $smtp ;

  #Conéctate con el servidor smtp de Gmail
  si ( no $smtpServidor = Net::SMTP::SSL- > nuevo ( 'smtp.gmail.com' , Puerto => 465 , Depurar => 1 ) )
  {
el 'No se puede conectar con el servidor SMTP. \norte ' ;
  }

  #Compruebe que el nombre de usuario y la contraseña son válidos
$smtpServer- > autenticación ( $nombre de usuario , $contraseña ) || el 'Error de autenticación. \norte ' ;

$smtpServer- > correo ( $desde. ' \norte ' ) ;
$smtpServer- > a ( $a. ' \norte ' ) ;
$smtpServer- > datos ( ) ;
$smtpServer- > enviar datos ( 'De: ' . $desde . ' \norte ' ) ;
$smtpServer- > enviar datos ( 'A: ' . $a . ' \norte ' ) ;
$smtpServer- > enviar datos ( 'Sujeto: ' . $asunto . ' \norte ' ) ;
$smtpServer- > enviar datos ( ' \norte ' ) ;

}

#Llamar a la subrutina

&enviar correo electrónico ( ) ;

Producción:



La siguiente información similar aparece al comienzo del resultado después de ejecutar el script si el correo electrónico se envió correctamente:







Cuando abra la dirección de correo electrónico del destinatario, recibirá el siguiente correo electrónico en la bandeja de entrada:

Ejemplo 2: envío de un correo electrónico con formato HTML

Cree un archivo Perl con la siguiente secuencia de comandos que envíe un correo electrónico con formato HTML utilizando un servidor SMTP de Gmail. Debe establecer una dirección de correo electrónico y una contraseña válidas como en el ejemplo anterior. A continuación, configure las direcciones de correo electrónico válidas del destinatario y del remitente. El código HTML se agrega como mensaje de correo electrónico en el script. El tipo de contenido del correo electrónico se establece en texto/html para enviar el correo electrónico con formato HTML. La otra parte del guión es igual que el ejemplo anterior. Se envía un correo electrónico con formato HTML a la dirección de correo electrónico del destinatario si el servidor SMTP está conectado y la información del usuario se autentica correctamente.

#!/usr/bin/perl

#Importar módulos necesarios
usar estricto ;
utilizar Net::SMTP::SSL ;

#Declarar subrutina para enviar correo electrónico usando el servidor de Gmail
subenviarcorreo electrónico
{
    #Nombre de usuario y contraseña para autenticación
mi $ nombre de usuario = 'username@gmail.com' ;
mi $contraseña = 'contraseña de la aplicación' ;

    #Inicializar las variables para enviar correo electrónico
mi $ a = 'receiver@gmail.com' ;
mi $ de = 'Meher Nigar ' ;
mi $tema = 'Registro completado' ;
mi $mensaje = '

Bienvenido a nuestro sitio

'
;

    #Declarar la variable smtp
mi servidor $smtp ;

    #Conéctate con el servidor smtp de Gmail
    si ( no $smtpServidor = Net::SMTP::SSL- > nuevo ( 'smtp.gmail.com' , Puerto => 465 , Depurar => 1 ) )
    {
el 'No se puede conectar con el servidor SMTP. \norte ' ;
    }

    #Compruebe que el nombre de usuario y la contraseña son válidos
$smtpServer- > autenticación ( $nombre de usuario , $contraseña ) || el 'Error de autenticación. \norte ' ;

$smtpServer- > correo ( $desde. ' \norte ' ) ;
$smtpServer- > a ( $a. ' \norte ' ) ;
$smtpServer- > datos ( ) ;
$smtpServer- > enviar datos ( 'De: ' . $desde . ' \norte ' ) ;
$smtpServer- > enviar datos ( 'A: ' . $a . ' \norte ' ) ;
$smtpServer- > enviar datos ( 'Sujeto: ' . $asunto . ' \norte ' ) ;

    #Establezca el tipo de contenido del correo electrónico en HTML para enviar correos electrónicos con formato html
$smtpServer- > enviar datos ( 'Tipo de contenido: texto/html; conjunto de caracteres=utf-8 \norte \norte ' ) ;
$smtpServer- > enviar datos ( $mensaje. ' \norte ' ) ;
$smtpServer- > final de datos ( ) ;
$smtpServer- > abandonar ;

}

#Llamar a la subrutina

&enviar correo electrónico ( ) ;

Producción:



La siguiente información similar aparece al comienzo del resultado después de ejecutar el script si el correo electrónico se envió correctamente:







Cuando abra la dirección de correo electrónico del destinatario, recibirá el siguiente correo electrónico en la bandeja de entrada:





Conclusión

Los métodos para enviar un correo electrónico utilizando Perl a través del servidor SMTP de Gmail no son tan fáciles como antes después de desactivar la 'aplicación menos segura' de la cuenta de Gmail. Pero puedes enviar un correo electrónico configurando la contraseña de la aplicación ahora.