6

これはばかげた質問かもしれませんが、しばらくの間私を悩ませてきました。PHP スクリプトにパイプされたメール フォワーダがあり、完全に受信しますが、すぐに次のエラーがメールで返されます。

A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed:

  pipe to |/home/[webroot]/public_html/external/mobile/email.php
    generated by mobile@[mydomain]

The following text was generated during the delivery attempt:

X-Powered-By: PHP/5.2.13 
Content-type: text/html

ご覧のとおり、Exim は、ヘッダーの応答を、私が持っているスクリプトからのエラーと見なします。スクリプトはphp://stdinからの電子メールを完全に受信できますが、Exim はすぐにエラーを返します。

プラス、

  • Apache ではなくコンソールから実行しているため、HTAccess や Apache の構成はおそらく何もしません。
  • 解決策が見つからないか、同じ問題を抱えている人はいません。

私の質問は次のとおりです。これらの 2 つのヘッダーを削除するにはどうすればよいですか?

ありがとう~ジョニー

編集、ソース:

    #!/usr/bin/php
<?php
    $fd = fopen("php://stdin", "r");
        $email = "";
        while (!feof($fd)) {
         $email .= fread($fd, 1024);
        }
        fclose($fd);

        $dat = fopen(dirname(__FILE__).'/test.txt', 'w');
        fwrite($dat, $email);
        fclose($dat);
4

2 に答える 2

16

php-cli (単に "php") が必要なときに php-cgi を実行しているようです。php -v を実行して確認してください。cgi の場合は、「-q」オプションを試してください。

于 2010-03-14T20:44:35.740 に答える
1

同じ問題がありました。私のホストは、php-5.4-cli を使用できると言っていました (通常は php-5.4 を使用しました)。

-cli を追加するとうまくいきました。

于 2015-09-15T10:02:20.740 に答える