Como enviar correos desde Perl usando Gmail

perl send email

En esta entrada tendremos realizaremos el envió de correo desde el SMTP de Gmail usando el lenguaje de programación Perl para realizar esta tarea, específicamente usando el modulo Email::Sender.

Perl es un lenguaje muy común para escribir scripts, por lo cual, es muy útil poder enviar de correos electrónico desde el.

En Perl existen varias opciones de módulos para trabajar con emails algunos de ellos son:
Net::SMTP
Mail::Sendmail
Email::Sender
Email::MIME
MIME::Lite

En esta entrada usaremos el modulo de cpan Email::Sender el cual es una de las alternativas para envió de email mas moderna en Perl para enviar correos sobre smtp con o sin capas de seguridad SSL/TLS.

Pasó 1 – Habilitar cuenta gmail para uso de aplicaciones no seguras (omitir si en otras ocasiones ya ha enviado correos usando su cuenta gmail)

Para la practica de esta entrada usaremos una cuenta gmail la cual previamente tiene que estar habilitada para su uso desde “aplicaciones menos seguras” para mas información para realizar este paso:
https://support.google.com/a/answer/6260879
https://support.google.com/a/answer/176600?hl=es

Pasó 2 – Instalar el modulo para envió de correo desde Perl

Usando el sistema operativo Debian o cualquier de sus derivados como Ubuntu ó Linux mint instale lo siguientes paquetes:

aptitude install libemail-sender-perl libemail-sender-transport-smtp-tls-perl libemail-sender-transport-smtps

Paso 3 – Crear script perl para el envió de correo

Ahora deberemos crear un archivo con extensión .pl en mi caso creare el archivo: enviar-mail.pl

En el mismo colocaremos las siguientes lineas de código:


#!/usr/bin/perl -w

use strict;
use warnings;

use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTPS;

my $smtpserver = 'smtp.gmail.com';
my $smtpport = 587;
my $smtpuser = 'leninmhs@gmail.com';
my $smtppassword = 'laclavedelcorreo';

my $transport = Email::Sender::Transport::SMTPS->new({
host => $smtpserver,
ssl => 'starttls',
port => $smtpport,
sasl_username => $smtpuser,
sasl_password => $smtppassword,
debug => 1,
});

my $email = Email::Simple->create(
header => [
To => 'leninmhs@gmail.com',
From => 'destinatario@gmail.com',
Subject => 'Asunto de correo enviado desde GMAIL con Perl!',
],
body => "Este es el texto del cuerpo del mensaje del correo enviado. \n",
);

sendmail($email, { transport => $transport });

En el código debemos sustituir el usuario y contraseña del correo gmail así como el destinatario del mismo.

Luego de esto ejecutamos el script desde el terminal: perl enviar-mail.pl

Como esta habilitada la opción debug en el código veremos la traza del envió del correo o del fallo en el mismo de ser el caso.

perl send mail cpan linux

perl debug verbose send email

Enviar correos perl gmail

Igualmente podemos realizar envíos desde cualquier cuenta de correo smtp distinta a gmail, por lo cual estas lineas de código son ideales para probar y confirmar correos que realizaran envíos luego.

También para automatizar tareas de envíos de masivos de correo por ejemplo leyendo los destinatarios desde un base de datos o un texto plano.

Si deseas puedes ver todas las publicaciones de perl de este blog haciendo clic aquí

 

También te podría gustar...

1 respuesta

  1. julio 18, 2018

    […]https://leninmhs.com.ve/enviar-correos-con-perl-gmail/ […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *