terminó puede proceso postfix mensaje mandar mail estado enviar diferente desde correo consola con comando cero archivos adjunto adjuntar linux unix shell email

puede - ¿Cómo adjuntar un archivo usando el comando de correo en Linux?



mandar un correo desde linux (13)

Con mailx puedes hacer:

mailx -s "My Subject" -a ./mail_att.csv -S [email protected] [email protected] < ./mail_body.txt

Esto funcionó muy bien en nuestros servidores GNU Linux, pero desafortunadamente mi entorno de desarrollo es Mac OsX, que solo tiene una vieja versión BSD de mailx. Normalmente uso Coreutils para obtener mejores versiones de comandos Unix que los Mac BSD, pero mailx no está en Coreutils.

Encontré una solución de notpeter en un hilo no relacionado ( https://serverfault.com/questions/196001/using-unix-mail-mailx-with-a-modern-mail-server-imap-instead-of-mbox-files ) que era descargar el paquete binario Heirloom mailx OSX de http://www.tramm.li/iWiki/HeirloomNotes.html . Tiene un mailx más destacado que puede manejar la sintaxis del comando anterior.

(Disculpas por los enlaces cruzados o la atribución, soy nuevo en el sitio).

Estoy en un servidor que ejecuta un shell de Linux. Necesito enviar un archivo simple a un destinatario. ¿Cómo hacer esto, preferiblemente usando solo el comando de correo ?

ACTUALIZACIÓN : obtuve una buena solución, usando mutt en su lugar:

$ echo | mutt -a syslogs.tar.gz [email protected]



El viejo mail simple puede hacerlo. Sin necesidad de otro software:

matiu@matiu-laptop:~$ mail -a doc.jpg [email protected] Subject: testing This is a test EOT

ctrl + d cuando hayas terminado de escribir.


En Linux sugeriría,

# FILE_TO_BE_ATTACHED = abc.gz

uuencode abc.gz abc.gz > abc.gz.enc # This is optional, but good to have # to prevent binary file corruption. # also it make sure to get original # file on other system, w/o worry of endianness # Sending Mail, multiple attachments, and multiple receivers. echo "Body Part of Mail" | mailx -s "Subject Line" -a attachment1 -a abc.gz.enc "[email protected] [email protected]"

Al recibir el archivo adjunto, si ha usado uuencode, necesitaría uudecode

uudecode abc.gz.enc

# Esto generará un archivo como original con el mismo nombre que el segundo argumento para uuencode.


Hay muchas respuestas aquí usando mutt o mailx o personas que dicen que el correo no admite "-a"

Primero, el correo de Ubuntu 14.0.4 de Mailutils soporta esto:

correo -un nombre-archivo -s "asunto" [email protected]

En segundo lugar, encontré que al usar el comando "man mail" y buscar "adjuntar"


La siguiente es una solución decente en instalaciones Unix / Linux, que no depende de ninguna característica inusual del programa. Esto admite un cuerpo de mensaje de múltiples líneas, múltiples archivos adjuntos y todas las otras características típicas de mailx .

Desafortunadamente, no cabe en una sola línea.

#!/bin/ksh # Get the date stamp for temporary files DT_STAMP=`date +''%C%y%m%d%H%M%S''` # Create a multi-line body echo "here you put the message body which can be split across multiple lines! woohoo! " > body-${DT_STAMP}.mail # Add several attachments uuencode File1.pdf File1.pdf > attachments-${DT_STAMP}.mail uuencode File2.pdf File2.pdf >> attachments-${DT_STAMP}.mail # Put everything together and send it off! cat body-${DT_STAMP}.mail attachments-${DT_STAMP}.mail > out-${DT_STAMP}.mail mailx -s "here you put the message subject" [email protected] < out-${DT_STAMP}.mail # Clean up temporary files rm body-${DT_STAMP}.mail rm attachments-${DT_STAMP}.mail rm out-${DT_STAMP}.mail


Mi respuesta necesita base64 además del correo, pero algunas versiones de uuencode también pueden hacer base64 con -m, o puedes olvidarte de mime y usar la salida de uuencode simple ...

[email protected] [email protected] SUBJECT="Auto emailed" MIME="application/x-gzip" # Adjust this to the proper mime-type of file FILE=somefile.tar.gz ENCODING=base64 boundary="---my-unlikely-text-for-mime-boundary---$$--" (cat <<EOF From: $FROM To: $REPORT_DEST Subject: $SUBJECT Date: $(date +"%a, %b %e %Y %T %z") Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="$boundary" Content-Disposition: inline --$boundary Content-Type: text/plain; charset=us-ascii Content-Disposition: inline This email has attached the file --$boundary Content-Type: $MIME;name="$FILE" Content-Disposition: attachment;filename="$FILE" Content-Transfer-Encoding: $ENCODING EOF base64 $FILE echo "" echo "--$boundary" ) | mail


Uso mailutils y la parte confusa es que para adjuntar un archivo necesita usar el parámetro A mayúscula. a continuación hay un ejemplo.

echo ''here you put the message body'' | mail -A syslogs.tar.gz [email protected]

Si desea saber si su comando de correo proviene de mailutils, simplemente ejecute "mail -V".

root@your-server:~$ mail -V mail (GNU Mailutils) 2.99.98 Copyright (C) 2010 Free Software Foundation, inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


Utilizando ubuntu 10.4, así es como se escribe la solución mutt

echo | mutt -a myfile.zip -- [email protected]


mpack -a -s "Oye: ¿podría servir como tu informe?" -m 0 -c application / x-tar-gz survey_results.tar.gz [email protected]

mpack y munpack funcionan junto con metamail para extender mailx y hacerlo útil con correos electrónicos modernos repletos de marcas de HTML y archivos adjuntos.

Esos cuatro paquetes en conjunto le permitirán manejar cualquier correo electrónico que pueda en un cliente de correo gui.


mailx podría ayudar. De la página man de mailx:

-a file Attach the given file to the message.

Bastante fácil, ¿verdad?



mailx -a /path/to/file email@address

Puede pasar al modo interactivo (le indicará "Asunto:" y luego una línea en blanco), ingrese un asunto, luego ingrese un cuerpo y presione Ctrl + D (EOT) para finalizar.