Я пытаюсь использовать электронные письма с 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 . '"');