2

我有一个由 cPanel 网络主机托管的网站。

每次收到新电子邮件至 help@xxx.com 时,我都希望运行一个 PHP 脚本。我希望运行的脚本将更新 sql 数据库上的一些变量。

我知道如何使用 PHP 完成所有任务,我想弄清楚的唯一部分是如何告诉我的 Web 服务器在收到新电子邮件时运行脚本。

当前正在运行 cron 作业,并且不希望每分钟运行一次脚本,并且仅在相关时运行。

4

2 回答 2

2

在大多数 cPanel 主机上,您可以设置转发器以在收到电子邮件时将其转发到脚本。只要您的电子邮件是在同一个 cPanel 帐户上管理的,它就可以很好地工作......

创建转发器时,您将转发到地址设置为|/home/username/path/to/script.php

然后,您需要在脚本中做的第一件事是接收来自以下地址的电子邮件stdin

//Receive the email from stdin ...
$fd = fopen("php://stdin","r");

$data = '';
while(!feof($fd)){
    $data .= fread($fd,1024);
}

fclose($fd);

//process email data ...

我已经在许多 cPanel 主机上取得了巨大成功。

于 2013-06-11T13:37:00.320 回答
1

如果您有权访问您的 MTA(邮件传输代理)配置,您可以设置一个在新邮件到达时触发的脚本。如何完成取决于您的 MTA。

此外,您可以使用procmail.forward文件并设置它们中的任何一个以在收到电子邮件到所需地址时执行脚本。

于 2013-06-11T13:37:06.820 回答