我目前有一个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_maps和pipe也可以使用:)
嗨,这里是我如何做一个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');