簡體   English   中英

我們可以通過發送郵件來觸發UNIX中的Perl腳本嗎

[英]Can we trigger a perl script in unix by sending a mail

我想知道我們是否可以通過發送郵件來觸發unix中的perl腳本。 基本上,腳本應該檢查傳入的郵件,然后觸發perl腳本。

也可以在設置郵件訪問權限方面進行一些設置,例如在我的UNIX家庭中閱讀和保存郵件。

-謝謝

您可以采用兩種基本方法。

  1. 配置您的SMTP服務器以通過腳本運行傳入的電子郵件。 Procmail是為此選擇的常用工具。
  2. 輪詢(通過使用cron或將腳本作為守護程序編寫)IMAP / POP服務器/ Maildir / Mbox / etc。

前者通常是更好的選擇。

您可以這樣修改它:

inotifywait -m  /var/mail/$USER | grep --line-buffered MODIFY | while read _unused_; do 
    #your perl script here
done

說明:它監視/ var / mail / $ USER的更改並在stdout上打印事件。 在每個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

暫無
暫無

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

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