Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP+;邮件服务器_Php_Email - Fatal编程技术网

PHP+;邮件服务器

PHP+;邮件服务器,php,email,Php,Email,我有一个用cPanel主机托管的网站 我期待有一个PHP脚本运行每次我得到一个新的电子邮件到help@xxx.com. 我希望运行的脚本将更新sql数据库上的一些变量 我知道如何用PHP完成所有任务,我想弄清楚的唯一一个部分是如何告诉我的web服务器在收到新电子邮件时运行脚本 当前正在运行cron作业,并且希望不要每分钟运行一次脚本,并且只有在相关时才运行。在大多数cPanel主机上,您可以设置转发器,以便在收到电子邮件时将其转发到脚本。只要你的电子邮件是在同一个cPanel帐户上管理的,它就会

我有一个用cPanel主机托管的网站

我期待有一个PHP脚本运行每次我得到一个新的电子邮件到help@xxx.com. 我希望运行的脚本将更新sql数据库上的一些变量

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


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

在大多数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主机上成功地完成了这项工作。

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


此外,您还可以使用或文件,并将其中任何一个设置为在接收到所需地址的电子邮件时执行脚本。

您可以将邮件服务配置为在每次邮件到达时运行脚本。具体取决于您正在运行的程序(例如postfix、procmail等)