Intereting Posts
Переадресация URL-адреса переименования / карты из .htaccess php – Как отслеживать страницы, посещаемые пользователями после выхода из моего сайта? Неоднозначная колонка в инструкции INNER JOIN WordPress: папка wp-content отделена от остальных Что такое session_id () и session_name ()? Объясните, как они используются в следующем коде session_start () создает новый сеанс при каждом обновлении TCPDF не отображает китайский на Linux-клиенте Laravel – порядок промежуточного ПО (приоритет промежуточного ПО). Мульти-арендатор с использованием Postgres PHP – как лучше определить, является ли текущий вызов из CLI или веб-сервера? Полоса прокрутки автоматически скрыта, если я не изменю размер страницы WooCommerce – Сделать набор купонов, добавив фиксированную плату к заказу файл нескольких маршрутов istead одного основного файла маршрута в laravel 5 Безопасная функция очистки XSS (регулярно обновляется) C # mimic ассоциативный массив неизвестного номера ключа (как в PHP) Как сделать автоматический вход в систему, сохранить сеанс в браузере

Как получить электронную почту от трубы до программы

Я отправляю электронное письмо в программу и запускаю какой-то код.

**

Я знаю, как получить «От:» и «Тема:», но как я могу получить только тело письма?

**

#!/usr/bin/php -q <? $fd = fopen("php://stdin", "r"); while (!feof($fd)) { $email .= fread($fd, 1024); } fclose($fd); $lines = explode("\n", $email); for ($i=0; $i < count($lines); $i++) { // look out for special headers if (preg_match("/Subject:/", $lines[$i], $matches)) { list($One,$Subject) = explode("Subject:", $lines[$i]); list($Subject,$Gone) = explode("<", $Subject); } 

и т. д. КАК Я ПОЛУЧИЛ СОДЕРЖАНИЕ ТЕЛА ЭЛЕКТРОННОЙ ПОЧТЫ?

Solutions Collecting From Web of "Как получить электронную почту от трубы до программы"

В принципе, вы хотите, чтобы заголовки заканчивались, и чтобы знать, является ли это многопрофильным или нет, вы можете получить правильную часть (и) электронной почты.

Вот некоторая информация:

разбор сырой электронной почты в php

Который говорит, что первая двойная новая строка должна быть началом тела письма.

Эта страница может дать вам некоторые другие идеи (см. Скрипт ниже):

http://thedrupalblog.com/configuring-server-parse-email-php-script

 #!/usr/bin/php <?php // fetch data from stdin $data = file_get_contents("php://stdin"); // extract the body // NOTE: a properly formatted email's first empty line defines the separation between the headers and the message body list($data, $body) = explode("\n\n", $data, 2); // explode on new line $data = explode("\n", $data); // define a variable map of known headers $patterns = array( 'Return-Path', 'X-Original-To', 'Delivered-To', 'Received', 'To', 'Message-Id', 'Date', 'From', 'Subject', ); // define a variable to hold parsed headers $headers = array(); // loop through data foreach ($data as $data_line) { // for each line, assume a match does not exist yet $pattern_match_exists = false; // check for lines that start with white space // NOTE: if a line starts with a white space, it signifies a continuation of the previous header if ((substr($data_line,0,1)==' ' || substr($data_line,0,1)=="\t") && $last_match) { // append to last header $headers[$last_match][] = $data_line; continue; } // loop through patterns foreach ($patterns as $key => $pattern) { // create preg regex $preg_pattern = '/^' . $pattern .': (.*)$/'; // execute preg preg_match($preg_pattern, $data_line, $matches); // check if preg matches exist if (count($matches)) { $headers[$pattern][] = $matches[1]; $pattern_match_exists = true; $last_match = $pattern; } } // check if a pattern did not match for this line if (!$pattern_match_exists) { $headers['UNMATCHED'][] = $data_line; } } ?> 

РЕДАКТИРОВАТЬ

Вот расширение PHP, называемое MailParse:

http://pecl.php.net/package/mailparse

Кто-то построил класс вокруг него под названием MimeMailParse:

http://code.google.com/p/php-mime-mail-parser/

И вот запись в блоге, в которой обсуждается, как ее использовать:

http://www.bucabay.com/web-development/a-php-mime-mail-parser-using-mailparse-extension/