我们可以通过发送邮件在unix中触发perl脚本吗?

时间:2013-05-15 14:08:31

标签: perl bash shell email

我想知道我们是否可以通过发送邮件在unix中触发perl脚本。 基本上脚本应检查传入的邮件,然后触发perl脚本。

也可以设置邮件访问权限,例如在我的unix家中读取和保存邮件。

-Thanks

3 个答案:

答案 0 :(得分:9)

您可以采取两种基本方法。

  1. 配置SMTP服务器以通过脚本运行传入电子邮件。 Procmail是此选择的常用工具。
  2. 轮询(通过使用cron,或将脚本编写为守护程序)您的IMAP / POP服务器/ Maildir / Mbox /等。
  3. 前者通常是更好的选择。

答案 1 :(得分:2)

你可以像这样破解:

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邮件。不在外部服务器上。

已知错误: 邮件阅读活动也会触发脚本。

答案 2 :(得分: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