Como quitar el error “Null message body; hope that’s ok”

Tratandose de servidores en alguno momento os puede haerb llegado un mail de tipo “Null message body; hope that’s ok”, este mail lo envia el propio servidor a la cuenta de correo que tenga configurada en el fichero /root/.forward.

Despues de darle unas vueltas, di con el motivo de porque de porque llegaba este mensaje.

Esto sucede cuando se adjunta un fichero sin contenido en el envio de correos, sea por script o tarea progamada.

Ejemplo, un tipo de envio donde podria suceder:

echo "Prueba" | mail -s "Prueba" mail@mail.es < /tmp/fichero_a_enviar.txt

Si este fichero “/tmp/fichero_a_enviar.txt” esta vacio, nos llegara ese tipo de mensaje.

Podemos solucionarlo validandolo el contenido del mensaje con un condicional de este tipo:

if [ -s /tmp/fichero_a_enviar.txt ]
  then
    echo "Prueba" | mail -s "Prueba" mail@mail.es < /tmp/fichero_a_enviar.txt
fi

Enviar correo electronico con fichero adjunto desde un servidor linux

Hoy voy a explicar como enviar un correo electronico desde un servidor linux, para ello vamos a utilizar el comando mail.

Si no lo tenemos instalado, lo podemos instalar en debian/ubuntu con el comando:

apt-get install mailutils

y en centos/red-hat con el comando:

yum install mailx

El comando para enviar un correo es muy sencillo, con el comando mail enviariamos el mensaje “prueba” en el cuerpo (echo “Prueba”) y en el asunto del mail (-s “Prueba”).

echo "Prueba" | mail -s "Prueba" destino@mail.es

Si queremos adjuntar un fichero o haremos añadiendo el parametro -a

echo "Prueba" | mail -s "Prueba" -a fichero_a_enviar.txt destino@mail.es 

Si quremos enviar a mas de un destinatario bastaria con añadirlo entrecomillado “destino@mail.es destino2@mail.es”.

echo "Prueba" | mail -s "Prueba" -a fichero_a_enviar.txt "destino@mail.es destino2@mail.es"

Y por ultimo si quisieramos elegir el remitente del envio lo haremos con el parametro -r

echo "Prueba" | mail -s "Prueba" -a fichero_a_enviar.txt -r remitente@mail.es "destino@mail.es destino2@mail.es"

Con todas estas opciones podemos enviar los mails de una manera muy sencilla a la hora de programar las tareas que consideremos oportunas.