1

我可以在下载邮件的情况下通过 IMAP 搜索所有电子邮件吗?

RFC 3501 IMAP 版本 4 修订版 1 (IMAP4rev1)的6.4.4中所述:

SEARCH 命令在邮箱中搜索与给定搜索条件匹配的邮件。搜索条件由一个或多个搜索关键字组成。来自服务器的未标记的 SEARCH 响应包含与匹配搜索条件的那些消息相对应的消息序列号列表。

定义的搜索关键字如下。有关参数的精确语法定义,请参阅正式语法部分

BODY在 消息正文中包含指定字符串的消息。

...所以我想知道是否可以在不先下载的情况下在电子邮件正文中进行搜索?

4

1 回答 1

1

该功能imap_search()可以帮助您,但请记住,它需要得到 IMAP 服务器的支持才能工作。

更新:

这是小程序:

error_reporting(E_ALL);
ini_set('display_errors', '1');

$user = '';         // put your Gmail email address here (including '@gmail.com');
$pass = '';         // put your Gmail password here
$host = 'imap.gmail.com:993';      // Put your IMAP server here with portGmail
$keyword = '';      // put the word you want to find


$mailbox = sprintf('{%s/imap/ssl/user=%s}INBOX', $host, $user);
$query = sprintf('BODY "%s"', $keyword);

$mbox  = imap_open($mailbox, $user, $pass, OP_READONLY);
if ($mbox) {
    $list = imap_search($mbox, $query, SE_UID);
    var_dump($list);
    imap_close($mbox);
}

它可能适用于您的设置,也可能不适用于您的设置。它在我们公司的邮件服务器上使用一个帐户对我有用。它无法连接到与我的常规电子邮件客户端正常工作的另一台服务器上。

它与Gmail同时工作和失败(!!)。不要问!

于 2014-12-09T09:37:51.723 回答