-1

我想知道我们是否可以通过发送邮件来触发 unix 中的 perl 脚本。基本上脚本应该检查收到的邮件然后触发 perl 脚本。

也可以设置一些邮件访问权限,例如在我的 unix home 上阅读和保存邮件。

-谢谢

4

3 回答 3

9

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

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

前者通常是更好的选择。

于 2013-05-15T14:14:00.770 回答
2

你可以像这样破解它:

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

说明:它监视 /var/mail/$USER 的更改并在标准输出上打印事件。在每个 MODIFY 事件上,它都会触发脚本。

注意:这仅适用于本地主机上的 unix 邮件。不在外部服务器上。

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

于 2013-05-15T14:34:08.380 回答
0

您可以继续轮询 (unix) 邮件以获取任何新邮件。

while true; do
    echo "\nq" | mail >/tmp/new_mail 2>&1 && /path/to/your/perl_script.pl arg1 arg2 ...
    sleep 60
done

如果你愿意,你可以/tmp/new_mail在你的 perl 程序中使用 的内容。如果您不需要它,您可以将mail输出重定向到/dev/null

于 2013-05-17T11:23:15.697 回答