Echo

回顯文件與 mailutils 衝突

  • March 17, 2016

安裝 ssmtp 和mailutils後,使用“echo”寫入文件會嘗試向我發送電子郵件至 username@hostname。例如:

使用 mailutils 發送郵件:

echo "Body text here." | mail -s "Subject text here." sendto@email.com

我使用: echo "log content" > logfile.txt 將內容寫入日誌文件。

問題是,當我想寫入日誌文件時,我收到一封來自 Gmail 的可傳遞電子郵件,說 username@hostname 無法訪問,這意味著它會干擾 mailutils。

我這是 mailutils 的一個已知問題,需要解決方法或修復,我該如何解決?

你在做這樣的事情嗎?

echo "log content" > logfile.txt | mail -s "Subject text" sendto@email.com

如果是這樣,難怪它不起作用 - 你已經將echo’s 的輸出重定向到一個文件,如果mail不使用像tee.

tee的全部目的是(來自手冊頁):

tee - 從標準輸入讀取並寫入標準輸出和文件

注意:如果您想追加logfile.txt而不是完全覆蓋它,請使用tee -a logfile.txt. 見man tee

因此,要保存到日誌文件並通過管道傳輸到郵件中,請嘗試以下操作:

echo "log content" | tee logfile.txt | mail -s "Subject text" sendto@email.com

或者,您可以重定向到日誌文件,然後使用<to redirectmail的 stdin 作為日誌文件,如下所示:

echo "log content" > logfile.txt
mail -s "Subject text" sendto@email.com < logfile.txt

引用自:https://unix.stackexchange.com/questions/270204