1

PHP で電子メール パイピングを使用しようとしています。

「To」フィールドを取得できないことを除いて、機能しています。

次の PHP コードを使用しています。

#!/usr/bin/php -q
<?php

// read from stdin
$fd = fopen("php://stdin", "r");
$email = "";
while (!feof($fd))
{
    $email .= fread($fd, 1024);

    $to1 = explode ("\nTo: ", $email);
    $to2 = explode ("\n", $to1[1]);
    $to = str_replace ('>', '', str_replace('<', '', $to2[0]));

}
fclose($fd);

mail('email@example.com','From my email pipe!','"' . $to . '"');

?>

電子メール アドレス (例: john@smith.com) を使用して、自分の電子メール アドレスに電子メールを送信し、それが PHP パイピング スクリプト (pipe.php) に転送される場合、電子メールの送信者を取得できるようにしたいに。

例: john@smith.com は、PHP パイピング スクリプト (bob@example.com) に送信される転送メールを送信します。

これで、「bob@example.com」などの電子メール アドレス全体が返され、bob のみが返されるようになりました (トーク マークなし)。

私はこれを使ってみました:

$to = $to.split("@");

しかし、次のようなエラーが表示されるようです。split() には少なくとも 2 つのパラメーターが必要です。メールを送信した人に送信されます。

誰かがこれを行う方法を知っているか、私が間違っている可能性があることを知っていますか?

PHP で Piping を使用するのはこれが初めてなので、何か間違ったことをしている場合はお知らせください。

4

1 に答える 1

1

使用して終了しました:

$to1 = explode ("\nTo: ", $email);
$to2 = explode ("\n", $to1[1]);
$to = str_replace ('>', '', str_replace('<', '', $to2[0]));
list($toa, $tob) = explode('@', $to);

次に、メールを次のように変更しました。

mail('email@example.com','From my email pipe!','"' . $toa . '"');
于 2012-11-25T07:03:41.083 に答える