PHP email Piping получает поле 'to'

Я пытаюсь использовать электронные письма с 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@example.com','From my email pipe!','"' . $to . '"'); ?> 

Если я использую адрес электронной почты (например: john@smith.com) и отправлю электронное письмо на мой адрес электронной почты, который перенаправляется на мой сценарий PHP-протокола (pipe.php), я хочу, чтобы он мог получить, кто был отправлен по электронной почте к.

Например: john@smith.com отправляет электронное письмо с отправкой на мой PHP-код (bob@example.com). Я хочу, чтобы он возвращал только часть bob только без @ example.com

Теперь происходит то, что он возвращает весь адрес электронной почты, такой как «bob@example.com», и я хочу, чтобы он возвращал только bob (без каких-либо разговорных меток).

Я попытался использовать это:

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

но я, кажется, получаю сообщение об ошибке: split () ожидает как минимум 2 параметра. Это отправляется лицу, отправившему электронное письмо.

Кто-нибудь знает, как это сделать или знать, что я могу делать неправильно?

Это мой первый раз, когда я использовал Piping в PHP, поэтому, если я что-то делаю неправильно, дайте мне знать.

Закончено с использованием:

 $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 . '"');