PHP imap_search 过滤器 X-priority header
PHP imap_search filter X-priority header
目前我正在编写一个脚本来将电子邮件从一个文件夹移动到另一个文件夹。应移动所有包含 X-Priority: 3
header 的邮件。
部分邮件来源:
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
header 的电子邮件。我首先想到我可以检查 imap_fetch_overview
、imap_fetchtext
或 imap_fetchbody
,但 none 包含 X-Priority
。但是,X-Priority
不是有效的 imap_search
条件。
如何过滤邮箱并仅获取带有 X-Priority
header 的电子邮件?
好吧,我应该在 posting 之前看起来更好,但无论如何我都会 post 我的发现:
我发现我可以用 imap_fetchheader
得到 headers,其中还包含 X-Priority
header(呃...)
所以检索它的代码是:
$headers = explode("\n", imap_fetchheader($imapStream, $emailId, 0));
在过滤的情况下,我可以使用 TEXT
作为条件来过滤具有特定 X-Priority
的电子邮件,如下所示:
$emailIds = imap_search($imapStream, 'TEXT "X-Priority: 3"');
这似乎只获取包含 X-Priority
header 的所有电子邮件。
目前我正在编写一个脚本来将电子邮件从一个文件夹移动到另一个文件夹。应移动所有包含 X-Priority: 3
header 的邮件。
部分邮件来源:
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
header 的电子邮件。我首先想到我可以检查 imap_fetch_overview
、imap_fetchtext
或 imap_fetchbody
,但 none 包含 X-Priority
。但是,X-Priority
不是有效的 imap_search
条件。
如何过滤邮箱并仅获取带有 X-Priority
header 的电子邮件?
好吧,我应该在 posting 之前看起来更好,但无论如何我都会 post 我的发现:
我发现我可以用 imap_fetchheader
得到 headers,其中还包含 X-Priority
header(呃...)
所以检索它的代码是:
$headers = explode("\n", imap_fetchheader($imapStream, $emailId, 0));
在过滤的情况下,我可以使用 TEXT
作为条件来过滤具有特定 X-Priority
的电子邮件,如下所示:
$emailIds = imap_search($imapStream, 'TEXT "X-Priority: 3"');
这似乎只获取包含 X-Priority
header 的所有电子邮件。