簡體   English   中英

清除進出口隊列和通過電子郵件自己發送電子郵件以及電子郵件主題的腳本

[英]script for clearing exim queue & sending email myself with email & subject in email

誰能告訴我這個腳本有什么問題?

(printf "To:myemail@mydomain.com\nSubject: Mail queue cleanup for for My-VPS-Linux\n\n" ; /usr/sbin/exim -bp | awk '/^ *[0-9]+[mhd]/{print "/usr/sbin/exim -Mrm " $3}' ) | bash | /usr/sbin/sendmail myemail@mydomain.com

通過SSH運行此命令后,我立即收到此錯誤消息

bash: line 1: To:myemail@mydomain.com: command not found
bash: line 2: Subject:: command not found

我要實現的是在cronjob中定義后通過此腳本清除exim隊列。 當我運行以下腳本時

/usr/sbin/exim -bp | awk '/^ *[0-9]+[mhd]/{print "/usr/sbin/exim -Mrm " $3}' ) | bash | /usr/sbin/sendmail myemail@mydomain.com

它工作正常,並在清除電子郵件隊列后向我發送電子郵件,但它沒有發布任何主題或電子郵件地址...

此致Faraz H. Khan

因為您已將subshel​​l放在首位,所以您的Subject:和To:打印eximexim輸出之前打印,並由bash處理。 您應該稍后移動子shell:

/usr/sbin/exim -bp | awk '/^ *[0-9]+[mhd]/{print "/usr/sbin/exim -Mrm " $3}' | (printf "To:myemail@mydomain.com\nSubject: Mail queue cleanup for for My-VPS-Linux\n\n"; bash) | /usr/sbin/sendmail myemail@mydomain.com

這會在任何其他輸出之前打印您的Subject:和To:行,但是bash不會處理這些行。

您正在將打印輸出發送到bash。 您需要將打印輸出發送到sendmail。 您的)位置錯誤。 (假設來自該exim|awk管道的輸出是您收到的電子郵件的主體,並以您嘗試的方式在標頭之前使sendmail做正確的事情,等等,等等。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM