目前我正在编写一个脚本,用于将电子邮件从文件夹移动到其他文件夹。应移动包含X-Priority: 3
标题的所有邮件。
邮件来源的一部分:
Date: DATE
To: NAME <EMAIL>
From: "NAME" <EMAIL>
Subject: SUBJECT
Message-ID: <SOMEID@EMAIL>
X-Priority: 3
我正在使用的代码:
$imapStream = imap_open('{HOST}Sent', 'EMAIL', 'PASSWORD');
$emailIds = imap_search($imapStream, 'ALL');
rsort($emailIds);
foreach ($emailIds as $emailId) {
$overview = imap_fetch_overview($imapStream, $emailId, 0);
$message = imap_fetchtext($imapStream, $emailId, 2);
var_dump($overview); // <-- Doesn't contain X-Priority
die;
}
现在,我需要过滤所有设置了X-Priority
标头的电子邮件。我首先想到我可以查看imap_fetch_overview
,imap_fetchtext
或imap_fetchbody
但不包含X-Priority
。但是,X-Priority
不是有效的imap_search
条件。
如何过滤邮箱并仅获取带有X-Priority
标题的电子邮件?
答案 0 :(得分:0)
好的,在发布之前我应该看起来更好但是我会发布我的发现:
我发现我可以使用imap_fetchheader
获取标题,其中还包含X-Priority
标题(duh ...)
所以检索它的代码是:
$headers = explode("\n", imap_fetchheader($imapStream, $emailId, 0));
如果是过滤,我可以使用TEXT
作为条件来过滤具有特定X-Priority
的电子邮件,如下所示:
$emailIds = imap_search($imapStream, 'TEXT "X-Priority: 3"');
这似乎只包含所有包含X-Priority
标题的电子邮件。