2011-11-29 13 views
9

kullanarak basit ileti gövdesi + dosya eki gönderme, e-posta, bir dosya eki ve mesaj gövdesi içermelidir. Ben Linux <code>Mailx</code> kullanarak bir e-posta göndermek için bir <code>shell script</code> yazıyorum Linux mailx

Şu eki olan bir e-posta göndererek:

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

Bir ileti gövdesi eklemek istiyoruz. Nasıl yapmalıyım

Linux mailx:

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

Bu soruların tüm cevapları olmalıdır success.pl geçerli: http://stackoverflow.com/questions/17359/how-do-i-send-a- file-gibi bir-posta-eki-linux-komutunu satırı kullanarak/14213935 # 14213935 –

cevap

20

zamanki gibi vücut için ekler için uuencode ve echo kullanmaktır: Solaris ve AIX için

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

, sen gerekebilir ilk olarak echo bildirimini koyun:

(echo "Body of text"; uuencode output.txt output.txt) | mailx -s 'Subject' [email protected] 
Johnsyweb cevabı benim için işe yaramadı ama Mutt ile benim için çalışıyor
2

iyi yolu Mpack kullanmaktır! konu - - beden - eki - posta adresinizi de

0

Bu deneyebilirsiniz

mpack -s "Konu"

mpack posta adresinizi de "././image.png "./body.txt" -d" :

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

bu deneyin benim için çalışıyor: RHEL Linux'ta

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

, sorun benim mesajı alıyorum vardı e-postanın gövdesi ek olarak değil. Od-cx kullanarak, e-postamın gövdesinin birkaç/r içerdiğini buldum./R'yi şeritlemek için bir perl betiği kullandım ve ileti e-postanın gövdesine doğru şekilde yerleştirildi.

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

metin dosyası body.txt

karakter \ r ihtiva yüzden \ r şerit Perl kullanılır.

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

Bu

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