Php

通過 PHP 腳本執行傳入的郵件 - Postfix

  • June 19, 2020

我已經按照這個答案將域的所有 Postfix 電子郵件通過管道傳輸到 PHP 腳本 - Centos7/EC2以將特定地址的傳入郵件定向到 PHP 腳本。

我的別名文件條目如下所示:

mail-incoming-php: "/usr/bin/php -q /var/spool/mail/php/incoming.php"

Postfix 虛擬文件將電子郵件地址映射到

mail-incoming-php@localhost

我目前的測試 PHP 腳本設置為創建一個我已經測試過的空文件。向相關地址發送郵件時,PHP 腳本不會創建文件,並且maillog包含以下錯誤:

cannot append message to file /usr/bin/php -q /var/spool/mail/php/incoming.php: cannot create file exclusively: No such file or directory

我暫時將 PHP 腳本的權限設置為 777 並得到相同的錯誤。

也許這不是解決這個問題或其他需要做的事情的最佳方法?

我需要腳本做的就是閱讀收到的電子郵件的內容,之後不必轉發電子郵件。

與連結的問題不同,您沒有將郵件傳送到腳本,即

mail-incoming-php: "| /usr/bin/php -q /var/spool/mail/php/incoming.php"

因為您錯過了|您正在嘗試寫入(追加)到文件的內容,所以:

  • /usr/bin/php -q /var/spool/mail/php/incoming.php是無效路徑。
  • /usr/bin/php會將消息附加到 PHP 二進製文件中。
    (幸運的是,沒有許可!)
  • /var/spool/mail/php/incoming.php將附加到腳本中。

此外,您不應該讓腳本全域可寫777,而是(最多)755

引用自:https://serverfault.com/questions/1022126