Envío de mensajes simples Cuerpo + archivo adjunto con Linux Mailx [duplicado

StackOverflow https://stackoverflow.com/questions/8314999

  •  25-10-2019
  •  | 
  •  

Pregunta

Esta pregunta ya tiene una respuesta aquí:

Estoy escribiendo un shell script Para enviar un correo electrónico usando Linux Mailx, el correo electrónico debe contener un Archivo adjunto y un Cuerpo del mensaje.

Actualmente envía un correo electrónico con un archivo adjunto:

output.txt | mail -s "Daily Monitoring" james@dell.com

Deseo agregar un cuerpo de mensaje. ¿Como podria yo?

Linux Mailx:

mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr
¿Fue útil?

Solución

La forma habitual es usar uuencode para los archivos adjuntos y echo para el cuerpo:

(uuencode output.txt output.txt; echo "Body of text") | mailx -s 'Subject' user@domain.com

Para Solaris y Aix, es posible que deba poner el echo Declaración primero:

(echo "Body of text"; uuencode output.txt output.txt) | mailx -s 'Subject' user@domain.com

Otros consejos

¡La mejor manera es usar mpack!

mpack -s "sujeto" -d "./body.txt" "././image.png" mailadress

mpack - sujeto - cuerpo - accesorio - mailadress

Prueba esto, funciona para mí:

(echo "Hello XYX" ; uuencode /export/home/TOTAL_SI_COUNT_10042016.csv TOTAL_SI_COUNT_10042016.csv ) | mailx -s 'Script test' abc@xde.com

En Rhel Linux, tuve problemas para recibir mi mensaje en el cuerpo del correo electrónico en lugar de como un archivo adjunto. Usando OD -CX, descubrí que el cuerpo de mi correo electrónico contenía varios /r. Usé un script Perl para quitar el /r, y el mensaje se insertó correctamente en el cuerpo del correo electrónico.

mailx -s "subject text" me@yahoo.com < 'body.txt'

El archivo de texto Body.txt contenía el char r, por lo que utilicé Perl para despojar r.

cat body.txt | perl success.pl > body2.txt
mailx -s "subject text" me@yahoo.com < 'body2.txt'

Esto es éxito.PL

    while (<STDIN>) {
        my $currLine = $_;
        s?\r??g;
        print
    }
;

La respuesta de Johnsyweb no funcionó para mí, pero funciona para mí con Mutt:

echo "Message body" | mutt -s "Message subject" -a myfile.txt recipient@domain.com

Puedes probar esto:

(cat ./body.txt)|mailx -s "subject text" -a "attchement file" receiver@domain.com
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top