用php从gmail imap获取Message-ID的值

Pav*_*vel 7 php gmail imap

我使用标准的imap函数来抓取邮件,我需要跟踪Message-ID(以及References和In-Reply-To)来构建线程.我通过smtp回复邮件,保留旧主题,但在我的网络界面中没有与他人分组.如果我添加一个In-Reply-To标题 - 一切正常.

问题是我无法获取Message-ID,References,In-Reply-To的值(但在Web界面中它们存在).我尝试了不同的函数(imap_headerinfo,imap_fetchheader,imap_fetch_overview),但所有这些值都是空的.

请帮忙!

All*_*ice 9

消息ID的格式如下:

<OTJMCQtXnqgMaP1rLJi-cD9IvuH+xuVndE-DoWAZB0cbdffqHdw@mail.gmail.com>
Run Code Online (Sandbox Code Playgroud)

由浏览器解析为HTML标记,以下代码将以浏览器可以显示的方式输出消息ID:

$this->mbox = imap_open('{imap.gmail.com:993/imap/ssl}', $email, $password);
$headers = imap_header($this->mbox, 1);
echo htmlentities($headers->message_id);
Run Code Online (Sandbox Code Playgroud)

或者如果你绝对必须使用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());
Run Code Online (Sandbox Code Playgroud)