2010-07-15 57 views
0

我使用的是我的Linux邮件服务器的Postfix。目标是将任何传入邮件转储到带有标题和邮件信息的数据库中,然后从邮件服务器中删除电子邮件。每当有新的电子邮件进入后,是否有任何方法让postfix向php文件发送消息,然后删除电子邮件?我可以看到的另一种方式是制作脚本来轮询电子邮件服务器,读取每封邮件并将内容传输到数据库,然后从邮件服务器中删除邮件。能够让后缀自动执行所有新的传入邮件的PHP脚本将是一个更好的选择。如果它有所不同,邮件服务器和具有php文件的服务器是相同的。任何方向在这个问题将不胜感激。将所有新电子邮件传送到数据库

回答

2

使用.forward,/ etc/aliases,hashtable等将邮件转发到脚本。

在/ etc/aliases中,我有

mysite-confirm: |/home/mysite/confirm.sh 

在confirm.sh,我有

#!/bin/sh 
basedir=/home/mysite/www 
php -d include_path=$basedir/includes -f $basedir/cli/confirm.php 

在confirm.php,神奇的发生:

$contents = file_get_contents("php://stdin"); 
do_magic_with_mail($contents); 

所有相当简单和僵化。唯一的缺点是你可以通过邮件[email protected]_domain_I_host.com,但你可以使用正确的别名/虚拟地图等来修复。

+0

什么是do_magic_with_mail()?似乎并未在php.net上列为功能 – naif 2010-07-15 19:09:35

+0

'do_magic_with_mail()'只是对数据库执行INSERT查询。 – Wrikken 2010-07-15 19:25:39

+0

哦,是的,对不起,我没有拼出一个......你有你的邮件在'$ contents',认为你可以从那里处理? – mvds 2010-07-15 19:41:45

相关问题