我想知道我們是否可以通過發送郵件來觸發unix腳本中的perl腳本。 基本上腳本應該檢查傳入的郵件然後觸發perl腳本。我們是否可以通過發送郵件來觸發unix腳本中的perl腳本
還可以設置一些郵件訪問,如閱讀和保存郵件在我的Unix系統上。
- 感謝
我想知道我們是否可以通過發送郵件來觸發unix腳本中的perl腳本。 基本上腳本應該檢查傳入的郵件然後觸發perl腳本。我們是否可以通過發送郵件來觸發unix腳本中的perl腳本
還可以設置一些郵件訪問,如閱讀和保存郵件在我的Unix系統上。
- 感謝
您可以採取兩種基本方法。
前者通常是更好的選擇。
你可以破解它是這樣的:
inotifywait -m /var/mail/$USER | grep --line-buffered MODIFY | while read _unused_; do
#your perl script here
done
說明:它監視更改在stdout &版畫事件的/ var /郵件/ $ USER。在每個MODIFY事件上,它都會觸發腳本。
注意:這隻適用於localhost上的unix郵件。不在外部服務器上。
已知錯誤: 郵件讀取活動也會觸發腳本。
您可以對任何新郵件進行輪詢(unix)郵件。
while true; do
echo "\nq" | mail >/tmp/new_mail 2>&1 && /path/to/your/perl_script.pl arg1 arg2 ...
sleep 60
done
如果你願意,你可以在你的Perl程序使用的/tmp/new_mail
內容。如果您不需要它,您可以將mail
輸出重定向到/dev/null
。
'inotifywait'是Linux特有的解決方案。 – chepner
^嗯...真的.. – anishsane