嘿,我只是想知道,當我試圖創建一個可以發送郵件的bash腳本。首先,我使用命令行測試郵件,但是當我運行命令時,什麼也沒有發生。我想這個命令試圖發送它,但它永遠不會通過,它只是掛起,我必須發送殺手函。通過bash腳本發送郵件
這些都是我曾嘗試的命令:
mail -s "Subject" [email protected]
mailx -s "Subject" [email protected]
嘿,我只是想知道,當我試圖創建一個可以發送郵件的bash腳本。首先,我使用命令行測試郵件,但是當我運行命令時,什麼也沒有發生。我想這個命令試圖發送它,但它永遠不會通過,它只是掛起,我必須發送殺手函。通過bash腳本發送郵件
這些都是我曾嘗試的命令:
mail -s "Subject" [email protected]
mailx -s "Subject" [email protected]
你們用什麼語法,郵件肯定是等着你鍵入的標準輸入的消息,如意見提出。你可以:
--type消息自己的命令後,用這樣的鎘
--USE語法終止寫一個字符串到身體:
mail -s "Subject" [email protected] <<< "Hello"
--Different語法
echo "Hello" | mail -s "Subject" [email protected]
特別是如果你打算用腳本發送郵件,你會想要考慮最後兩種方法。
首先,您需要發送一個消息與您的郵件。我們也可以嘗試詳細模式:
$ mailx -v -s "Test Message" [email protected] <<EOM
> This is my message I want to send.
> I can keep typing it and the last line ends with just "EOM"like this:
> EOM
Mail Delivery Status Report will be mailed to <foo>.
$
的<<EOM
被稱爲Here Document。它會告訴您的計算機希望從STDIN(鍵盤)輸入命令,並且輸入將以<<
字符(此處爲EOM
)後面的字符串結尾。
你會得到一個郵件報告通過電子郵件發送給你。您可以使用mailx
讀它,還是那些花哨的新的電子郵件程序,如elm
或pine
的一個,或者只是通過mailx
讀取命令行郵件:
$ mailx
Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/foo": 1 message 1 new
>N 1 [email protected] Mon Nov 24 14:04 67/2465 "Mail Delivery Status Report"
? s
No file specified: using MBOX.
"/home/users/foo/mbox" [New file]
? q
$
現在,你應該有一個文件名爲mbox
你的$HOME
目錄。看看這個文件,看看它說什麼。我得到了這個:
$ vi $HOME/mbox
Enclosed is the mail delivery report that you requested.
The mail system
<[email protected]>: delivery via
mail.foo.com[XX.XX.XX.XX]:25: host
mail.foo.com[XX.XX.XX.XX] refused to talk to me: 554
-Please submit an unblock request
<http://x.co/rblbounce>
看起來我被封鎖了。
也許它正在等待你在標準輸入中輸入消息正文? – 2014-11-24 18:48:16
它不會提示我提供任何其他信息。我甚至嘗試過sendmail命令,但在主題後再次掛起 – auahmed 2014-11-24 18:54:57
這些命令不提示輸入,他們認爲它將在標準輸入中提供。嘗試輸入消息正文並查看發生了什麼。 – 2014-11-24 18:57:13