Получение только определенной части тела электронной почты с использованием imap_body

У меня есть почта, где мне нужно получить тело через PHP imap-функции, а затем сохранить его в базе данных. Эти письма отправляют из системы ответов. Я использую этот код, чтобы получить тело письма

$bodyText = imap_fetchbody($mbox,$v,1.2); if(!strlen($bodyText)>0){ $bodyText = imap_fetchbody($mbox,$v,1); } 

Это работает отлично, но также включает в себя исходное тело сообщения, есть ли способ получить ответ.

Тело электронной почты выглядит так:

 **This is a test -- Kind Regards, -----Original Message----- From: ------------- To:-------------------------- Subject: You have received a reply to your enquiry New System Date: Tue, 5 Jul 2011 16:24:28 +0200 Good day, You have received the following reply to an enquiry you made ------------------------------------------------------------------------------------------------- test3 -------------------------------------------------------------------------------------------------- To reply to this comment please click on the Reply To button and add the message you wish to send.** 

Есть ли способ получить только тело сообщения без ОРИГИНАЛЬНОГО СООБЩЕНИЯ ИСПОЛЬЗОВАНИЯ ФУНКЦИЙ IMAP или других функций PHP?

Здесь есть сообщение в блоге: http://www.damnsemicolon.com/php/php-parse-email-body-email-piping, в котором рассматривается проблема. Он использует общеизвестные форматы ответов для почтовых клиентов, чтобы лучше понять, что такое тело ответа. Это так хорошо, как вы можете получить, учитывая, что вы не можете контролировать используемые почтовые клиенты.

Просто заметьте, связанный код использует имя и имя / адрес электронной почты для лучшего анализа адреса электронной почты. Вы можете получить такие значения:

 $headerInfo = imap_headerinfo($mbox,$v); $fromEmail = $headerInfo->from->personal; $fromName = $headerInfo->from->mailbox . "@" . $headerInfo->from->host; $toEmail = $headerInfo->to->personal; $toName = $headerInfo->to->mailbox . "@" . $headerInfo->to->host; 

Изменить: ссылка кажется мертвой, вот кеш Google: http://webcache.googleusercontent.com/search?q=cache:5MxzHXFU5TkJ:www.damnsemicolon.com/php/php-parse-email-body-email- трубопроводы + & кд = 1 & гл = еп & кт = CLNK & GL = са

вы пробовали

 substr($wholeMessage, 0, strpos($wholeMessage, 0, "-----Original Message-----")); 

это приведет к отключению сообщения с самого начала до начала строки —- Original Message —. грязный, но может удовлетворить ваши потребности

EDIT: Я предполагаю, что у вас есть только одна часть mime. Если у вас их несколько, вы можете просто сохранить те, которые вам нужны