2012-11-25 36 views
1

我正在嘗試使用PHP的電子郵件管道。PHP電子郵件管道獲取'到'字段

我有它的工作,除了我不能'到'字段。

我使用下面的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 protected]','From my email pipe!','"' . $to . '"'); 

?> 

如果我使用一個電子郵件地址(例如:[email protected])和發送電子郵件到被轉發到我的PHP管我的電子郵件地址腳本(pipe.php)我希望它能夠獲取電子郵件發送給誰。

例如: [email protected]電子郵件,去我的PHP腳本管道([email protected])我希望它只是沒了@ example.com

只返回鮑勃部分我轉發電子郵件

現在發生的是它返回整個電子郵件地址,如「[email protected]」,我希望它只返回鮑勃(沒有任何談話標記)。

我一直在使用這種嘗試:

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

但我似乎得到一個錯誤,指出:斯普利特()預計,至少2個參數。 發送給發送電子郵件的人。

有誰知道如何做到這一點或知道我可能做錯了什麼?

這是我第一次在PHP中使用管道,所以如果我做錯了什麼,請讓我知道。

回答

1

最終使用:

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

然後改變了郵件:

mail('[email protected]','From my email pipe!','"' . $toa . '"');