Php
如何將後綴通過管道傳輸到 Codeigniter 控制器
我目前將後綴管道連接到 PHP 腳本中,以通過別名處理電子郵件。
catchall: |/var/www/vhosts/website/httpdocs/scripts/incoming_mail.php
但是,我希望使用我的 CI 項目中提供的 DB 配置等,所以我需要提供一個路由,例如:
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:無法獨占創建文件:權限被拒絕
後綴會拋出上述錯誤消息,因為您告訴它將電子郵件內容附加到
/incoming_mail
,而不是將參數傳遞/incoming_mail
給cli.php
。根據man 5 別名
|命令
> > 郵件通過管道傳輸到命令中。包含特殊字元(如空格)的命令應該用雙引號括起來。有關傳遞給命令的詳細資訊,請參見 local(8)。 > > >
由於您沒有包裝包含空格的命令,因此後綴解釋
/incoming_mail
為文件名/文件名
> > 郵件附加到 /file/name。有關傳遞到文件的詳細資訊,請參見 local(8)。傳遞不限於正常文件。例如,要處理不需要的郵件,請將其轉移到 /dev/null。 > > >
解決方案:用雙引號將您的命令包裝在別名文件中
catchall: "|/var/www/vhosts/website/httpdocs/cli.php /incoming_mail"
PS:使用Jommaar 解決方案
transport_maps
,pipe
也可以使用 :)