[英]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
因為您已將subshell放在首位,所以您的Subject:和To:打印exim
在exim
輸出之前打印,並由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.