Я использую стандартные функции imap для получения писем, мне нужно отслеживать идентификатор сообщения (и ссылки и In-Reply-To) для создания потоков. Я отвечаю на сообщения через smtp, сохраняя старый объект, но в моем веб-интерфейсе не группируется с другими. Если я добавлю заголовок In-Reply-To – все в порядке.
Проблема в том, что я не могу получить значения Message-ID, References, In-Reply-To (но в веб-интерфейсе они присутствуют). Я пробовал разные функции (imap_headerinfo, imap_fetchheader, imap_fetch_overview), но все эти значения пустые.
Пожалуйста помоги!
Идентификатор сообщения имеет формат:
<OTJMCQtXnqgMaP1rLJi-cD9IvuH+xuVndE-DoWAZB0cbdffqHdw@mail.gmail.com>
который анализируется браузером как HTML-тег, следующий код выводит идентификатор сообщения таким образом, который может отображаться браузером:
$this->mbox = imap_open('{imap.gmail.com:993/imap/ssl}', $email, $password); $headers = imap_header($this->mbox, 1); echo htmlentities($headers->message_id);
Или если вы абсолютно должны использовать print_r:
$this->mbox = imap_open('{imap.gmail.com:993/imap/ssl}', $email, $password); ob_start(); print_r(imap_header($this->mbox, 1)); print_r(imap_fetch_overview($this->mbox, 1)); print_r(imap_fetchheader($this->mbox, 1)); echo htmlentities(ob_get_clean());