如何取得透過管道郵件執行的 php 腳本的輸出?

如何取得透過管道郵件執行的 php 腳本的輸出?

我已經配置了一個電子郵件地址,將所有電子郵件通過管道(轉發)到 /path/to/script.php

我以為我會收到腳本的輸出作為電子郵件回复,但它不起作用。

如何取得腳本的輸出並以輸出作為電子郵件內容發送回覆電子郵件?

(*) 我知道我可以在腳本中使用 mail() 但我沒有編輯腳本的權限,我無法複製腳本,因為它會不時更新。

答案1

您只需添加另一個管道即可tee將原始郵件放入臨時檔案中,然後透過管道傳輸到上述唯讀腳本,最後透過管道傳輸到另一個 php 腳本來完成其餘的工作。

最後一個 php 腳本將從唯讀腳本中讀取輸出,並從臨時檔案讀取寄件者地址,然後使用 mail() php 函數發送郵件。

| tee /path/to/tmp/file | /path/to/script.php | /path/to/another.php

順便說一句,我從未使用過這種方法,也不知道它是否可能,但看起來確實如此可以的回答可以和命令列宏,這是一個更好的解決方案,因此如果它確實有效,請在此處回覆並告訴我們如何操作。

答案2

抱歉,除非腳本被設計為正確運行,否則它不會知道如何自動回复,只是因為您正在管道數據這樣做。

如果您無法更改腳本,也許您需要編寫另一個前端腳本來捕獲輸出並執行您需要的操作。

答案3

您可以修改您的郵件配置。它應該是沿著

<run your php file with arguments> | sendmail <arguments>

如果不知道您的配置,很難具體說明。

相關內容