L'envoi simple, fichier joint corporel + message en utilisant Linux Mailx [double]

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

  •  25-10-2019
  •  | 
  •  

Question

Je suis en train d'écrire un shell script pour envoyer un email en utilisant Linux Mailx, l'e-mail doit contenir un fichier joint et corps de message .

en cours d'envoi d'un e-mail avec une pièce jointe:

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

Je voudrais ajouter un corps de message. Comment dois-je?

Linux Mailx:

mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr
Était-ce utile?

La solution

La manière habituelle est d'utiliser uuencode pour les pièces jointes et echo pour le corps:

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

Pour Solaris et AIX, vous devrez peut-être mettre l'instruction echo premier:

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

Autres conseils

La meilleure façon est d'utiliser mpack!

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

mpack - sujet - corps - attachement - mailadress

Essayez ceci cela fonctionne pour moi:

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

Sur RHEL Linux, j'ai eu du mal à obtenir mon message dans le corps de l'e-mail au lieu de pièce jointe. En utilisant od -CX, je trouve que le corps de mon e-mail contenait plusieurs / r. J'ai utilisé un script Perl pour dépouiller le / r, et le message a été correctement insérée dans le corps de l'email.

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

Le fichier texte body.txt contenait le charbon \ r, donc je perl pour dépouiller \ r.

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

est success.pl

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

La réponse de Johnsyweb n'a pas fonctionné pour moi, mais cela fonctionne pour moi avec Mutt:

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

Vous pouvez essayer ceci:

(cat ./body.txt)|mailx -s "subject text" -a "attchement file" receiver@domain.com
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top