0

PHPスクリプトを使用して、次のメールをtxtファイルに変換したいと考えています。メール機能へのパイプを使用していますが、スクリプトを実行すると意味不明になります。

#!/usr/bin/php -q
<?
/* Read the message from STDIN */
$fd = fopen("php://stdin", "r");
$email = ""; // This will be the variable holding the data.
while (!feof($fd)) {
$email .= fread($fd, 1024);
}
fclose($fd);
/* Saves the data into a file */  
$fdw = fopen("/home/mrsirajali/pipemail.txt", "w+");
fwrite($fdw, $email);
fclose($fdw);
/* Script End */
?>

次の出力を取得する

From ****@arbtradersignals.com Sun Mar 01 13:00:44 2015
Received: from [84.19.34.200] (port=54307 helo=wintest2)
    by **********.prod.phx3.secureserver.net with esmtpsa (TLSv1:AES256-SHA:256)
    (Exim 4.84)
    (envelope-from <******@arbtradersignals.com>)
    id 1YSA2e-0002E3-Gc
    for *******@arbtradersignals.com; Sun, 01 Mar 2015 13:00:44 -0700
Message-ID: <c76708cf$20150301200044@wintest2>
User-Agent: MetaTrader 4 Terminal
MIME-Version: 1.0
From: "=?UTF-8?B?RXhwZXJ0IEFkdmlzb3I=?="
 <*****@arbtradersignals.com>
To: "=?UTF-8?B?QXJidHJhZGVyIFNpZ25hbHM=?="
 <*****@arbtradersignals.com>
Subject: =?UTF8?B?QXJidHJhZGVyU2lnbmFscyBDVVJSRU5UIE9QRU4gUE9TSVRJT05TICAjU0lHMQ==?=
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64

ClBhaXIgfCBEaXJlY3Rpb24gfCBFbnRyeSB8IFNMIHwgVFAKClVTREpQWSB8IEJVWSB8IDExOS40
MCB8IDExNy43NiB8IDEyMC40OApVU0RDSEYgfCBCVVkgfCAwLjk1MTMgfCAwLjkzNjUgfCAwLjk2
MDEKVVNEQ0FEIHwgQlVZIHwgMS4yNTAxIHwgMS4yMzAwIHwgMS4yNjQ0CkdCUEpQWSB8IEJVWSB8
IDE4My43MiB8IDE4Mi42MCB8IDE4Ni4wOApFVVJKUFkgfCBTRUxMIHwgMTM0LjUyIHwgMTM2LjIy
IHwgMTMyLjk5CgpUb3RhbCBPcGVuIFBvc2l0aW9ucyA9IDU=

元の電子メールの内容。

新しい未決注文

ペア | 方向 | エントリー | SL | SL | TP | TP | 有効期限

米ドルCHF | バイストップ | 0.9513 | 0.9365 | 0.9581 | 2015.02.26 23:59

米ドルカナダドル | バイストップ | 1.2501 | 1.2300 | 1.2638 | 2015.02.26 23:59

ユーロドル | セルストップ | 1.1330 | 1.1488 | 1.1222 | 2015.02.26 23:59

ユーロ円 | セルストップ | 134.52 | 136.22 | 133.42 | 2015.02.26 23:59

未決注文の合計=4

4

1 に答える 1

0

意味不明ではない、それがメールの内容だ。content-transfer-encoding をデコードしたい場合は、本体をbase64デコーダーに渡すだけです。一般的に、MIME 構造をよく理解している (ライブラリを備えた) 必要があります。

于 2015-03-05T15:29:55.940 に答える