Enviar correos desde la terminal con Mail en Ubuntu Server 12.04 LTS

A veces necesitamos enviar correos desde la línea de comandos. No como lo hace una aplicación como Mutt, sino directamente desde la línea de comando o desde un script o desde las tareas de cron.
Para estos casos disponemos de una ligera aplicación en el paquete mailutils llamada mail.
Para instalar mail basta con instalar el paquete mailutils. Con el siguiente comando ejecutado en una terminal lo tendremos hecho.

sudo aptitude install mailutils

Modo de empleo.

La aplicación mail dispone de un modo interactivo para enviar correos desde la línea de comandos. Por ejemplo para enviar un correo a user@example.com:

mail user@example.com

Y nos mostrará algo como:

Cc:
Subject: 

En “Cc:” podemos poner un destinatario que recibirá copia. En “Subject:” el asunto del mensaje. Después podremos escribir libremente el contenido del mensaje. Y cuando terminemos de redactar el contenido pulsaremos CONTRL-D para finalizar y enviar el mensaje.
Pero esto en realidad no es lo que pretendíamos. Esto ya lo podemos hacer mejor con Mutt. Aunque viene bien conocer este uso.

Enviar mensajes desde la línea o scripts

Para enviar un mensaje a una dirección de correo desde la terminal o desde dentro de un script  basta con:

echo "El mensaje a enviar" | mail user@example.com

Para que lleve el mensaje lleve asunto usaremos la opción “-s”, como en:

echo "El mensaje a enviar" | mail -s "Asunto" user@example.com

Y para añadir un fichero adjunto usaremos la opción “-a”, como en:

echo "El mensaje a enviar" | mail -a fichero.ext user@example.com

19 comentarios en “Enviar correos desde la terminal con Mail en Ubuntu Server 12.04 LTS

  1. Estoy enviando un EMail HTML desde la consola de Linux Ubuntu, pero cuando el correo me llega a Hotmail no me interpreta las etiquetas HTML.

    Pero el mismo correo se envia a GMAIL y ahi si llega interpretado y me muestra las tablas y demas titulos.

    cual sera el error que se esta dando para el envio de los correos a hotmail ??? aqui pueden ver los archivos con los que se estan realizando las pruebas.
    cualquier colaboracion a email-> oscarm-centumaco@hotmail.com

    http://sdrv.ms/ZemA8i

  2. Hola
    No me funciona, no se que estoy haciendo mal. Tengo una aplicación web en php y estoy buscando la manera de enviar notificaciones de correo todas las mañanas. Sería una buena idea correr un script como este pasandole los datos por parametro, pero no me funciona.
    Alguna idea??
    Saludos

    1. En ese caso no te sería más cómodo hacer un scrip en php para enviar los correos, lanzando el script con cron. Usando las funciones de envío de correos de php.

    2. Estoy haciendo pruebas, y funciona. Pero veo que usando una MV con un dominio inventado los correos van a spam. Es posible que los tengas ahí.

  3. funciona, pero el adjunto no llega como tal, sino que llega el “texto” de la ruta al mismo… en lugar del fichero en cuestion…

      1. @gaspar. Si funciona pero es posible que te pase esto. Desde hace algún tiempo los grandes como Google y demás bloquean el correo entrante cuando no es desde un servidor de confianza. Revisa tus logs a ver si tienes algún mensaje como este:

        xxxxx@gmail.com host gmail-smtp-in.l.google.com[173.194.79.26] said:
        550-5.7.1 [173.13.176.19 7] Our system has detected that this message
        is 550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to
        Gmail, 550-5.7.1 this message has been blocked. Please visit 550-5.7.1
        http://support.google.com/mail/bin/answer.py?hl=en&answer=188131 for 550
        5.7.1 more information. tv8si37221038pbc.2 (in reply to end of DATA
        command)

        Saludos

          1. Las opciones por defecto te valen. Para enviar no necesitas más. Los logs están en /var/log
            He borrado la máquina virtual con la que he probado el artículo y no recuerdo exactamente donde me salio el mensaje ese, pero revisa también los directorios /var/mail /var/spool
            Era un mensaje devuelto al usuario que envía el mensaje.

            Saludos.

  4. Gracias por la respuesta. Este es mi error.

    Jul 22 16:11:07 saturno postfix/smtp[8585]: 735934153E: to=, relay=none, delay=20, delays=0.13/0.08/20/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=gmail.com type=MX: Host not found, try again)

    Pareceria un error de DNS del postfix? Cualquier cosa escribe, gracias!

    1. Pues si Gaspar. Esta parte de ese texto sugiere eso que dices

      (Host or domain name not found. Name service error for name=gmail.com type=MX: Host not found, try again)

  5. hola joseba,
    he instalado el pakete mailutils en ubuntu pero a la hora de enviarlo a otros usuarios del sistema no se recibe(/var/mail/USR)

    1. Hola Fede. Revisa en los logs si el destinatario bloquea los correos. Google y seguramente Microsoft, bloquea los correos si no son de un origen fiable. Este suele ser el problema que me encuentro con más frecuencia al configurar un servidor de correo.

      1. Gracias por tu respuesta joseba
        si es un origen no fiable,¿por que no tengo el correo en la carpeta Spam? En Yahoo me lo “mete” en Spam
        ¿De que depende que unas veces me llegue a Spam y otras veces no me llegue?

Deja un comentario