2011-09-24 79 views
2

我需要建立一个电子邮件解析脚本,将解析会进入收件箱和内容转储到数据库的电子邮件,而在同一时间做同一个卷曲的请求从电子邮件解析的详细信息。如何解析实时电子邮件,因为他们收到

在这一刻我很卡在执行上,因为它们在收件箱中收到如何解析实时电子邮件的一部分。有没有办法设置触发器来做这样的事情?我在使用基于php的webmail客户端方面拥有丰富的经验,但这看起来不同。

这怎么可能实现 - 我假设一个cron作业,但如果那里有另一种方式来做到这一点,我所有的耳朵。

回答

5

是的,有。 您可以将电子邮件传送到您的脚本。

假设你正在使用的cPanel,按照这个steps

  • 登录到您的cPanel。
  • 点击Forwarders图标,在Mail标签下。
  • 点击Add Forwarder按钮。
  • 填入Address to Forward,并把你想要的邮件地址从 中传出。
  • 选择Pipe to a Program和完整路径填写脚本 将处理的消息。

这里是将接收到的电子邮件到你的其他邮件(只用于演示)邮件捕手例如:

#!/usr/bin/php -q 
<?php 

// read from stdin 
$fd = fopen("php://stdin", "r"); 
$email = ""; 
while (!feof($fd)) 
{ 
    $email .= fread($fd, 1024); 
} 
fclose($fd); 


mail('[email protected]','From my email pipe!','"' . $email . '"'); 

?> 
+0

哇我永远不知道你可以直接发送电子邮件到脚本 - 感谢您的帮助,我会给它一个镜头。 – Ali

5

如果您想在特定时间执行某项操作,您将使用cron作业。如果您想在电子邮件到达时执行某些操作,则需要将您的代码绑定到您的电子邮件系统中。通常的做法是使用Procmail(你可以使用a recipe(只读PHP for Perl/shell))。

1

我一直在使用PECL扩展mailparse网站上为一些现在已经很多年了,这很好。

我有所有邮件特定主机获得通过管道输送到使用mailparse解析消息,并将其插入到数据库中的PHP脚本,以及过程中的附件或多个收件人。

他们有一个示例文件try.php在下载,能够让我开始。

根据什么邮件服务器,你需要做的是管道传入邮件到你的脚本像昆汀说最简单的事情。我使用exim,我所要做的就是为我的域创建一个valiases文件,如下所示:*: "|/home/site/process_mail.php"并从那里mailparse完成大部分的辛苦工作,然后处理该消息并将其添加到数据库中。

相关问题