получение значения Message-ID из gmail imap с помощью php - PullRequest
7 голосов
/ 01 ноября 2011

Я использую стандартные функции imap для захвата писем, мне нужно сохранить отслеживать идентификатор сообщения (и ссылки и In-Reply-To) для построения потоки. Я отвечаю на сообщения через smtp, сохраняя старую тему, но в моем веб-интерфейсе не группирую их с другими. Если я добавлю заголовок In-Reply-To - все в порядке.

Проблема в том, что я не могу получить значения Message-ID, References, In-Reply-To (но в веб-интерфейсе они присутствуют). Я пробовал разные функции (imap_headerinfo, imap_fetchheader, imap_fetch_overview), но все эти значения пусты.

Пожалуйста, помогите!

1 Ответ

8 голосов
/ 25 июля 2013

Идентификатор сообщения имеет формат, подобный следующему:

<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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...