2011-11-29 25 views
9

Piszę shell script wysłać wiadomość e-mail za pomocą Linux Mailx, e-mail musi zawierać załącznik plików oraz korpus wiadomość.Wysyłanie prostą treść wiadomości + plik załącznika przy użyciu Linux mailx

Obecnie wysłanie e-maila z załącznikiem:

output.txt | mail -s "Daily Monitoring" [email protected] 

Pragnę dodać treść wiadomości. Jak powinienem?

Linux mailx:

mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr 
+1

ten powinien mieć wszystkie odpowiedzi na pytania: http://stackoverflow.com/questions/17359/how-do-i-send-a- file-as-an-mail-attachment-using-linux-command-line/14213935 # 14213935 –

Odpowiedz

20

Zwykłym sposobem jest użycie uuencode dla załączników i echo dla ciała:

(uuencode output.txt output.txt; echo "Body of text") | mailx -s 'Subject' [email protected] 

Solaris i AIX, może być konieczne najpierw wprowadź instrukcję echo:

(echo "Body of text"; uuencode output.txt output.txt) | mailx -s 'Subject' [email protected] 
0

odpowiedź Johnsyweb za nie działa dla mnie, ale to działa na mnie z Mutt:

echo "Message body" | mutt -s "Message subject" -a myfile.txt [email protected] 
2

Najlepszym sposobem jest użycie Mpack!

MPACK -s "Temat" -d "./body.txt" "././image.png" mailadress

mPack - Temat - ciało - załącznik - mailadress

0

Można spróbować :

(cat ./body.txt)|mailx -s "subject text" -a "attchement file" [email protected] 
1

Spróbuj tego, że pracuje dla mnie:

(echo "Hello XYX" ; uuencode /export/home/TOTAL_SI_COUNT_10042016.csv TOTAL_SI_COUNT_10042016.csv) | mailx -s 'Script test' [email protected] 
0

na Linux RHEL, miałem problemy z poruszaniem się w moją wiadomość treść e-maila zamiast załącznika. Używając od-cx, stwierdziłem, że treść mojego e-maila zawierała kilka/r. Użyłem skryptu perla do usunięcia/r, a wiadomość została poprawnie wstawiona do treści wiadomości e-mail.

mailx -s "subject text" [email protected] < 'body.txt' 

plik tekstowy body.txt zawierał znak \ R, więc stosowane Perl taśmy \ R.

cat body.txt | perl success.pl > body2.txt 
mailx -s "subject text" [email protected] < 'body2.txt' 

To success.pl

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