如何pipe理后缀到Codeigniter控制器

我目前有一个PHP脚本的后缀pipe道来处理通过别名的电子邮件。

catchall: |/var/www/vhosts/website/httpdocs/scripts/incoming_mail.php 

但是,我希望使用我的CI项目中提供的数据库configuration等,所以我需要提供一个路线,如:

 catchall: |/var/www/vhosts/website/httpdocs/cli.php /incoming_mail 

期望的结果是我运行incoming_mail控制器。

如果我尝试上面的电子邮件是反弹以下内容:

 Action: failed Status: 5.2.0 Diagnostic-Code: X-Postfix; cannot append message to file /incoming_mail: cannot create file exclusively: Permission denied 

任何帮助是极大的赞赏!

不能将邮件追加到文件/ incoming_mail:不能独占创build文件:权限被拒绝

上面的错误信息是由postfix引发的,因为您告诉它将电子邮件内容附加到/incoming_mail ,而不是将参数/incoming_mail传递给cli.php

根据男子5别名

|命令

邮件input命令。 包含特殊字符(如空白)的命令应该放在双引号之间。 请参阅本地(8)了解有关交付指令的详细信息。

由于您不包含包含空格的命令,因此将postfix interpretered /incoming_mail作为文件名

/文件名

邮件被追加到/文件/名称。 请参阅本地(8)了解有关交付文件的详细信息。 交付不限于常规文件。 例如,要处理不需要的邮件,请将其转移到/ dev / null。

解决scheme:用双引号将你的命令包装在别名文件中

 catchall: "|/var/www/vhosts/website/httpdocs/cli.php /incoming_mail" 

PS: Jommaar解决scheme使用transport_mapspipe也可以使用:)

嗨,这里是我如何做一个parsing器:

/etc/postfix/master.cf (后缀)

 bounce-pipe unix - nn - - pipe flags=BDFORXhqu user=deploy argv=/usr/bin/php5 /var/www/emailmanager/public/index.php 

运输(后缀)

 [email protected] bounce-pipe: 

index.php – 获取您将要处理的数据

 $data = file_get_contents('php://stdin');