将所有新电子邮件传输到数据库

时间:2010-07-15 18:29:53

标签: php email

我正在为我的linux邮件服务器使用postfix。目标是将任何传入邮件转储到带有标头和邮件信息的数据库中,然后从邮件服务器中删除电子邮件。有没有办法让postfix在每次收到新电子邮件时将消息发布到php文件然后删除电子邮件?我可以看到制作脚本来轮询电子邮件服务器,读取每封邮件并将内容传输到数据库,然后从邮件服务器中删除邮件的唯一方法。能够让postfix自动执行所有新传入邮件的PHP脚本将是一个更好的选择。如果它有所不同,邮件服务器和带有php文件的服务器是相同的。任何方向都会受到高度赞赏。

1 个答案:

答案 0 :(得分: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);

一切都非常简单和僵化。唯一的缺点是你可以邮寄mysite-confirm@any_domain_I_host.com,但你可以用正确的别名/虚拟地图等修复它。