2012-08-13 62 views
0

我正在嘗試attach one file並使用mailx and uuencode發送電子郵件正文中的幾個echo messages。我有下面的命令,我已經將它們加在一起,並且uuencode不能正常工作,但我在我的電子郵件中正確地獲得了回顯消息。uuencode無法正常使用我的以下命令附加文件

我該如何讓uuencode在這裏工作?我在這裏做錯了什麼,我想在使用mailx來結合uuencode的時候呢?

(uuencode /tmp/chart.html percentage_graph.html) | mailx -s "LIP Data Quality Report for $DATE_YEST_FORMAT1" -r [email protected] [email protected] <<EOF 
Data Successfully loaded into LIP_DATA_QUALITY table 

Total Items Purchased: `echo $QUERY1 | awk '{print $1}'` 

Total Items MissingorMismatch: `echo $QUERY1 | awk '{print $2}'` 

Error Percentage: $QUERY2 
EOF 

但對於測試目的,如果我下面發出命令,看看我是否收到以附件的任何HTML文件或沒有,然後我收到一封電子郵件,附件正常。

(uuencode /tmp/chart.html percentage_graph.html) | mailx -s "LIP Data Quality Report for $DATE_YEST_FORMAT1" -r [email protected] [email protected] 

那麼什麼是錯誤的,我的第一個命令時,我結合在一起呢?

+0

可能有事情做與管道,並都試圖將數據發送到mailx的的標準輸入定界符。 – jordanm 2012-08-13 23:14:44

+0

那麼如何添加'uuencode命令'以便我可以將這兩個東西放在一起? – ferhan 2012-08-13 23:16:59

+0

這是關於你和@ Nevzz03一直問幾乎相同的問題?請參閱(切線相關,不重複)http://stackoverflow.com/questions/11944124/send-the-output-of-html-file-within-the-email-body – tripleee 2012-08-14 04:31:47

回答

1

mailx命令可以從管道(uuencode)或heredoc(< EOF)獲取其輸入。但不是兩個。

這可能會爲你工作:

$ mailx -s "LIP Data Quality Report for $DATE_YEST_FORMAT1" -r [email protected] [email protected] <<EOF 
Data Successfully loaded into LIP_DATA_QUALITY table 

Total Items Purchased: `echo $QUERY1 | awk '{print $1}'` 

Total Items MissingorMismatch: `echo $QUERY1 | awk '{print $2}'` 

Error Percentage: $QUERY2 

$(uuencode /tmp/chart.html percentage_graph.html) 

EOF 

或者,可以考慮使用類似mutt這將讓你在郵件正文中單獨附加文件。

+1

heredoc饋送到整個管道的stdin (所以到uuencode的標準輸入,不是mailx) – 2012-08-13 23:54:01

+0

@ChrisDodd - 是的,但這不是OP使用它的方式。 'uuencode'只用stdin,如果你用一個選項 - 遠程文件名來運行。 OP正在使用'/ tmp/chart.html',命名爲'percentage_graph.html',並且在MIME被髮明之前,大約在20世紀90年代早期將它嵌入到郵件正文中。他的意圖是「**附加一個文件**」。 – ghoti 2012-08-14 03:06:52

0

如果您在此處輸入文件名,uuencode不讀取stdin。這是因爲它編碼了一個文件。如果你想編碼兩個文件,你需要首先以某種方式將它們結合在一起。你可以只使用cat如果concantenating它們是確定的:

cat /tmp/chart.html - | uuencode percentage_graph.html | mailx .... << EOF 
..stuff to append to chart.html 
EOF 
+0

這將文本解碼爲與HTML文件相同的塊,因此生成的「附件」將是損壞的HTML,而不是嵌入了uuencoded HTML文件的文本。收件人需要對數據進行優化編碼,以便閱讀郵件內容,我認爲這不是OP所瞄準的內容。 – ghoti 2012-08-14 03:11:20