Saltar al contenido

Enviar un correo desde un script de shell de Linux

Solución:

Si el servidor está bien configurado, por ejemplo, tiene un MTA en funcionamiento, puede usar el comando mail.

Por ejemplo, para enviar el contenido de un archivo, puede hacer esto:

$ cat /path/to/file | mail -s "your subject" [email protected]

man mail para más detalles.

Si desea un enfoque limpio y simple en bash, y no desea usar cat, echo, etc., la forma más sencilla sería:

mail -s "subject here" [email protected] <<< "message"

<<< se utiliza para redirigir la entrada estándar. Ha sido parte de bash durante mucho tiempo.

Si se están ejecutando exim y ssmtp, es posible que tenga problemas. Entonces, si solo desea ejecutar un MTA simple, solo para tener un cliente smtp simple para enviar notificaciones por correo electrónico para solicitar asistencia, deberá purgar el MTA eventualmente preinstalado como exim o sufijo primero y reinstale ssmtp.

Entonces es bastante sencillo, configurar solo 2 archivos (revaliases y ssmtp.conf) – Ver ssmtp doc -, y el uso en su script bash o bourne es como:

#!/bin/sh  
SUBJECT=$1  
RECEIVER=$2  
TEXT=$3  

SERVER_NAME=$HOSTNAME  
SENDER=$(whoami)  
USER="noreply"

[[ -z $1 ]] && SUBJECT="Notification from $SENDER on server $SERVER_NAME"  
[[ -z $2 ]] && RECEIVER="another_configured_email_address"   
[[ -z $3 ]] && TEXT="no text content"  

MAIL_TXT="Subject: $SUBJECTnFrom: $SENDERnTo: $RECEIVERnn$TEXT"  
echo -e $MAIL_TXT | sendmail -t  
exit $?  

Obviamente, no olvide abrir la salida de su firewall al puerto smtp (25).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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