【问题标题】:PHP + mail serverPHP + 邮件服务器
【发布时间】:2013-06-11 13:25:32
【问题描述】:

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

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

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

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

【问题讨论】:

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

标签: php email


【解决方案1】:

在大多数 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 主机上成功地做到了这一点。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-08
      • 1970-01-01
      • 2014-03-08
      • 2014-11-15
      • 2013-06-12
      • 2012-09-22
      • 1970-01-01
      • 2018-11-11
      相关资源
      最近更新 更多