2013-05-15 62 views

回答

9

您可以採取兩種基本方法。

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

前者通常是更好的選擇。

2

你可以破解它是這樣的:

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

說明:它監視更改在stdout &版畫事件的/ var /郵件/ $ USER。在每個MODIFY事件上,它都會觸發腳本。

注意:這隻適用於localhost上的unix郵件。不在外部服務器上。

已知錯誤: 郵件讀取活動也會觸發腳本。

+0

'inotifywait'是Linux特有的解決方案。 – chepner

+0

^嗯...真的.. – anishsane

0

您可以對任何新郵件進行輪詢(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

相關問題