El autor contribuyó voluntariamente este tutorial como parte del programa Pepipost Escribir para Contribuir.

Introducción

Las notificaciones son cada vez más importantes en estos días para mantenerse actualizadas entre varias actividades en línea. Además, estas notificaciones pueden ser correos electrónicos, SMS o push. Este tutorial le mostrará la forma más sencilla de enviar notificaciones, a través de uno de los canales más populares que es el correo electrónico. Aprenderá el proceso de envío de correos electrónicos desde el terminal o un script de shell desde un sistema operativo Linux, utilizando algunas de las herramientas populares de CLI.

Este tutorial lo ayudará a enviar correos electrónicos críticos a nivel de servidor, como informes Cron, registros de scripts, registros de clientes, recibos, estados de cuenta bancarios por correo electrónico. Hay muchas maneras de enviar correos electrónicos desde el servidor, pero exploremos la herramienta que es fácil de instalar y fácil de codificar.

Con bibliotecas simples y pequeñas configuraciones, puede tener una herramienta CLI en su sistema operativo Linux que puede usar para enviar correos desde el terminal.

Requisitos previos

  • Sistema operativo Linux
  • Configuraciones SMTP (detalles del servidor SMTP y credenciales de autenticación)
  • Su editor favorito (Opcional)
  • Configure Gmail SMTP/ready con cualquier otro detalle personalizado del servidor SMTP. En este tutorial, va a usar Gmail SMTP para enviar correos electrónicos, así que asegúrese de que;
    undefinedundefined

Las configuraciones del servidor SMTP de Google se verían algo como esto:

  • Servidor SMTP / Nombre de Host: smtp.gmail.com
  • Nombre de usuario SMTP:
  • Contraseña SMTP:
  • Puerto SMTP: 587
  • TLS / SSL: Requerido

Es hora de abrir el terminal

Hay varias herramientas y bibliotecas que puede instalar para enviar correos electrónicos desde el terminal. Pocas de las bibliotecas populares son:

  • sSMTP
  • Mailx

En este tutorial, aprenderá los pasos sobre cómo instalar y usar sSMTP para enviar correos desde la línea de comandos de Linux. Haga clic aquí, en caso de que desee aprender a instalar y usar Mailx para enviar correos desde la línea de comandos de Linux.

Cómo instalar sSMTP para enviar correos desde la línea de comandos (CLI) de Linux

Paso 1

Utilice el siguiente comando para instalar ssmtp:

sudo apt-get install ssmtp

Opcional:
Los usuarios de CentOS pueden usar el siguiente comando para instalar ssmtp:

sudo yum install ssmtp

En CentOS, puede ver un error durante la instalación, ya que «el paquete ssmtp no está disponible», en tal caso, el comando siguiente, será útil para solucionar el problema:

sudo yum --enablerepo=extras install epel-release

Paso 2

Una vez que ssmtp se haya instalado correctamente, debe realizar las siguientes configuraciones globales necesarias para enviar correo.

Abra el siguiente archivo en su editor favorito:

sudo vim /etc/ssmtp/ssmtp.conf

Edite el archivo anterior con los detalles a continuación:

mailhub=smtp.gmail.com:587useSTARTTLS=YESAuthUser=username-hereAuthPass=password-hereTLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt

La configuración anterior se utilizará para enviar correos electrónicos utilizando su SMTP de Gmail. En caso de que desee utilizar algún otro SMTP de terceros, mencione el nombre de host del mismo. por ejemplo, si desea utilizar Pepipost SMTP, en lugar de smtp.gmail.com, tienes que mencionar smtp.pepipost.com en el parámetro mailhub. mailhub se utiliza para la dirección del servidor SMTP que consta de dos partes: puerto

Ahora está listo para enviar correos desde la línea de comandos (CLI).

Paso 3

Hay varias formas de usar el comando ssmtp para enviar correos electrónicos.

Caso 1: Enviar correo Directamente Desde la Línea de comandos

Para ello, copie y pegue el siguiente comando y estará listo para enviar correo electrónico desde la línea de comandos:

echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv 

-vvv es el nivel de detalle para ver los registros mientras se envía el correo

Caso 2: Enviar correo desde un script de shell

También puede usar el mismo ssmtp para enviar correo desde un script de shell. Para ello, abra su editor preferido y cree un archivo de script de shell con el nombre saymail.shand copia y pega el siguiente código:

#!/bin/sh SUBJECT="Test Subject"TO=""MESSAGE="Hey There! This is a test mail"echo $MESSAGE | sudo ssmtp -vvv $TO

Asegúrese de haber establecido el permiso de acceso correcto a su archivo de script. Si no, aquí está el comando para establecer el permiso:

$ sudo chmod 755 mail.sh 

Ahora, el código está listo para ser ejecutado. Simplemente ejecute el script de shell usando el siguiente comando:

$ sudo ./mail.sh

Espero que ahora también puedas enviar correos usando el script de shell.

A continuación se muestran algunos errores/excepciones que puede encontrar al enviar el correo utilizando ssmtp:

Error 1

En caso de que al enviar el correo electrónico, if pueda obtener el siguiente error como salida:
ssmtp: Authorization failed (535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104-gsmtp)

 220 smtp.gmail.com ESMTP u65sm14952769pfu.104 - gsmtp EHLO kali 250 SMTPUTF8 STARTTLS 220 2.0.0 Ready to start TLS EHLO kali 250 SMTPUTF8 AUTH LOGIN 334 VXNlcm5edhbAWU6 dmlzaGFsY2hhasd2dWhhbjIyMTJAZ21haWwuY29t 334 EUEeGFzc3dvfcaqQ6 535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 - gsmtpssmtp: Authorization failed (535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 - gsmtp):~/Documents/Scripts$ 

Solución: En tal caso, intente hacer lo siguiente como solución:

  1. Habilite «Permitir aplicación menos segura» en la configuración de sus cuentas de Google, como se explica en la sección de requisitos previos anterior.
  2. Las credenciales de inicio de sesión proporcionadas pueden no ser válidas. Asegúrate de tener las credenciales correctas.

Una vez solucionado el problema, vuelva a ejecutar el script de shell y la salida de éxito será algo como esto;

$ sudo ./mail.sh

Producto:

 220 smtp.gmail.com ESMTP h8sm1096aae22880pfo.64 - gsmtp EHLO kali 250 SMTPUTF8 STARTTLS 220 2.0.0 Ready to start TLS EHLO kali 250 SMTPUTF8 AUTH LOGIN 334 VXNlcm5edhbAWU6 dmlzaGFsY2hhasd2dWhhbjIyMTJAZ21haWwuY29t 334 UGFzqc3dmvcmQ36 235 2.7.0 Accepted MAIL FROM:<> 250 2.1.0 OK h8smqer10962480pfo.64 - gsmtp RCPT TO:<> 250 2.1.5 OK h8smqer10962480pfo.64 - gsmtp DATA 354 Go ahead h8sm10962880pfo.64 - gsmtp Received: by kali (sSMTP sendmail emulation); Thu, 19 Sep 2019 21:45:14 +0530 From: "root" <> Date: Thu, 19 Sep 2019 21:45:14 +0530 Hey There! This is a test mail . 250 2.0.0 OK 1568909725 h8smqer10962480pfo.64 - gsmtp QUIT 221 2.0.0 closing connection h8smqer10962480pfo.64 - gsmtp

Conclusión

Deja una respuesta

Tu dirección de correo electrónico no será publicada.