Script de bash para enviar correo electrónico

Bash Script Send Email



El correo electrónico es un medio de comunicación muy común en el mundo actual. Cualquiera puede comunicarse o compartir fácilmente cualquier documento con amigos, familiares y colegas enviando el correo electrónico. Generalmente, las personas utilizan cualquier servidor de correo electrónico gratuito como Gmail, Yahoo, Hotmail, etc. para enviar el correo electrónico. Pero puede enviar correos electrónicos desde la línea de comandos fácilmente en el sistema operativo Linux. Hay muchas formas de enviar correo electrónico en Linux. En este tutorial se muestran algunas formas comunes y fáciles de enviar correo electrónico en el sistema operativo Ubuntu desde la terminal.

Inicialización:

Muchos comandos de Linux están disponibles para enviar correos electrónicos desde la línea de comandos o mediante un script bash. Pero cualquier comando de envío de correo electrónico no funcionará si no hay ningún servidor SMTP configurado correctamente en el sistema. Puede configurar su propio servidor SMTP para enviar correo electrónico desde la línea de comandos o puede utilizar cualquier servidor SMTP gratuito de cualquier proveedor de servicios de correo electrónico conocido como Gmail o Yahoo. En este tutorial se utiliza el servidor SMTP de una cuenta de Gmail. Para realizar esta tarea, debe seleccionar una cuenta de Gmail y habilitar la opción de 'Permitir aplicaciones menos seguras' para que esa cuenta envíe el correo electrónico. Puede visitar el siguiente tutorial para habilitar esta opción.







https://linuxhint.com/how-to-send-email-from-php/



Después de habilitar esta opción, debe abrir el archivo '/etc/ssmtp/ssmtp.conf' con el privilegio de 'root' y agregar las siguientes líneas al final del archivo. Debe configurar su dirección de correo electrónico en 'AuthUser' y su contraseña de correo electrónico en 'AuthPass' para completar la configuración.



UseSTARTTLS= SI
FromLineOverride= SI
raíz= admin@example.com
mailhub= smtp.gmail.com:587
AuthUser= nombre de usuario@gmail.com
AuthPass= contraseña

Ejemplo 1: uso del comando Sendmail

Uno de los comandos de envío de correo electrónico más populares de Linux es `sendmail`. El usuario puede enviar correos electrónicos fácilmente desde la línea de comandos usando este comando. Si el paquete Sendmail no está instalado en el sistema, ejecute el siguiente comando para instalar el paquete.





$sudoaptoInstalar en pcssmtp

Supongamos que el contenido del correo electrónico se almacena en un archivo llamado 'email.txt' con el siguiente contenido. Aquí, el texto después del 'Asunto:' se enviará como asunto del correo electrónico y la parte restante se enviará como cuerpo del correo electrónico.

email.txt



Asunto: Envío de correo electrónico mediante sendmail
Prueba del cuerpo del correo electrónico

Ejecute el comando 'sendmail' con la dirección de correo electrónico del destinatario como el siguiente comando.

$enviar correonombre de usuario@gmail.com<email.txt

Ejemplo 2: uso del comando 'mail'

El comando más común para enviar correo electrónico en Linux es el comando `mail`. Este comando no está instalado en Ubuntu de forma predeterminada. Ejecute el siguiente comando para instalar el comando `mail`.

$sudoaptoInstalar en pcmailutils

El siguiente comando mostrará la versión de este comando si está instalado en el sistema.

$correo-V

La opción '-s' se utiliza en el comando 'mail' para definir el asunto del correo electrónico. Ejecute el comando 'mail' con la opción '-s' con el asunto del correo electrónico y la dirección de correo electrónico del destinatario como el siguiente comando. Le pedirá la dirección Cc :. Si no desea utilizar el campo Cc:, déjelo en blanco y presione Intro. Escriba el cuerpo del mensaje y presione Ctrl + D para enviar el correo electrónico.

$correo-s 'tema'nombre de usuario@gmail.com

Si desea agregar el cuerpo del mensaje de correo electrónico en el comando, use '<<<’ operator like the following command.

$correo-s 'Asunto del mensaje'nombre de usuario@gmail.com<<< 'prueba del cuerpo del mensaje'

También puede agregar la dirección de correo electrónico del remitente con el comando 'mail' utilizando la opción '-a'. El siguiente comando enviará el correo electrónico con el asunto, 'asunto del mensaje', el nombre del remitente y la dirección de correo electrónico, 'Administrador<[correo electrónico protegido]> ’Y la dirección de correo electrónico del destinatario,[correo electrónico protegido]y cuerpo del mensaje, 'mensaje de prueba'.

$ correo-s 'Asunto del mensaje' -aDe: Admin <administración@example.com>
nombre de usuario@gmail.com<<< 'mensaje de prueba'

También puede enviar el cuerpo de un mensaje de correo electrónico mediante el comando echo y pipe (|). El siguiente comando usa el comando pipe (|) para enviar el cuerpo del mensaje.

$echo 'mensaje de prueba' |correo-s 'Asunto del mensaje'nombre de usuario@example.com

El correo electrónico se puede enviar a varios destinatarios usando el comando 'mail' y agregando las direcciones de los destinatarios separando comas. El siguiente comando se enviará por correo electrónico a dos destinatarios.

$correo-s 'Prueba de correo electrónico'nombre de usuario1@example.com, username2@example.com<test.txt

Ejemplo-3: Uso del comando `mutt`

Al igual que el comando `mail`, el comando` mutt` no está instalado en Ubuntu de forma predeterminada. Ejecute el siguiente comando para instalar el comando `mutt`.

$sudoaptoInstalar en pcchucho

El comando `mutt` funciona de manera similar al comando` mail` pero el comando `mutt` tiene su propio editor para enviar el correo electrónico. Ejecute el siguiente comando con la dirección de correo electrónico válida para enviar el correo electrónico.

$echomensaje de prueba|chucho-s 'Prueba de correo electrónico'nombre de usuario@example.com

Puede adjuntar cualquier archivo usando la opción '-a' con el comando 'mail' o 'mutt'. El siguiente comando adjuntará el archivo items.txt mientras envía el correo electrónico.

$echo 'mensaje de prueba' |chucho-s 'Asunto del mensaje' -aitems.txt--nombre de usuario@gmail.com

Ejemplo 4: uso del comando 'SSMTP'

Otro comando de correo electrónico es el comando `ssmtp`. Si ssmtp no está instalado antes, instale primero el paquete. El comando de instalación para ssmtp se muestra en el ejemplo-1. Los comandos ssmtp y sendmail funcionan de manera similar.

Ejecute el siguiente comando con la dirección de correo electrónico válida. Escriba el asunto y el cuerpo del correo electrónico. Presione ctrl + D para salir y enviar el correo electrónico.

$nombre de usuario ssmtp@gmail.com

Ejemplo-5: Uso del comando mailx

Puede enviar contenido HTML como cuerpo de correo electrónico sin solo enviar el mensaje de texto. Cree un archivo HTML llamado 'test.html' para usarlo como cuerpo del mensaje.

test.html

< html >
< cuerpo >>
< h3 >Envío de correo electrónico</ h3 >
< hacen Talla='2' color='red'>Prueba del cuerpo del mensaje</ hacen >
<</ cuerpo >
</ html >

El comando `mailx` funciona como el comando` mail`. Debe mencionar Content-Type como texto / html para enviar contenido HTML como el cuerpo del mensaje en el comando `mailx`. El siguiente comando enviará el contenido del archivo 'test.html' como el cuerpo del mensaje de correo electrónico.

$ mailx-a 'Tipo de contenido: texto / html' -s 'Envío de correo electrónico mediante mailx'
<test.html'[correo electrónico protegido]'

Cuando revise la bandeja de entrada de la cuenta de correo electrónico del destinatario, la lista de correos electrónicos se mostrará como la siguiente imagen.

Conclusión

Después de practicar correctamente los comandos anteriores, espere que el lector pueda enviar correos electrónicos desde la línea de comandos fácilmente en Linux.