2014-01-14 4 views
1

Я разрабатываю небольшое приложение для веб-почты, что мне нужно сделать, это потоки писем, как то, что делает Gmail.Извлечь электронную почту, используя идентификатор сообщения с php imap?

Я планировал достичь этого, получив 'references' почты (используя uid), а затем показывая их как один поток. Я получаю ссылки, как это:

$inbox = imap_open("{imap.example.org:143}INBOX", "username", "password"); 
    $email_number = imap_msgno($inbox,$uid); 
    $overview = imap_fetch_overview($inbox,$email_number,0); 
    $mess = $overview[0]; 
    $refs = array_filter(explode(' ', htmlentities($mess->references))); 

$refs массив представляет собой массив Message-Id's, может кто-нибудь сказать мне, как получать почту, основанную на Message-Id.

Если я могу получить Message UID или Message Sequence Number от Message-Id, что также было бы достаточно.

Альтернатива, которая возникла у меня в голове, заключалась в том, чтобы достичь этого, используя imap_search() для поиска писем с тем же предметом (после удаления «Re:» от него и т. Д.), Но я не думаю, что это было бы идеально.

Может ли кто-нибудь дать мне полезные указания относительно того, как это решить? Заранее спасибо

ответ

5

Некоторые IMAP-серверы позволят вам искать по Message-ID (SEARCH HEADER Message-ID string), но многие серверные программы, похоже, плохо реализуют это.

В общем, нет способа получить сообщение по заголовку Message-ID. Большинство клиентов загружают заголовки (включая Message-ID) всех сообщений, сохраняют их, а затем обрабатывают их, сопоставляя их с другими сообщениями на заголовках References и In-Reply-To. Однако: если вы используете Gmail, вы можете использовать его extensions, чтобы захватить внутренний идентификатор потока Gmail, который они называют X-GM-THRID.

+0

Спасибо Макс, но есть ли способ поиска заголовка с помощью php, например, с помощью imap_search или любой другой функции, где я могу выполнить команду «ИСКАТЬ ИСТОЧНИК ИДЕИ»? – Aditya

+0

Извините, я знаю IMAP, а не PHP, поэтому я даю общую информацию, которая должна быть переводимой в любую данную библиотеку, если она достаточно расширяема. Да, я начну с imap_search. – Max