Php 搜索电子邮件正文而不下载-IMAP

Php 搜索电子邮件正文而不下载-IMAP,php,email,imap,horde,Php,Email,Imap,Horde,我可以通过IMAP搜索所有电子邮件而不下载邮件吗 如IMAP第4版第1版(IMAP4rev1)第6.4.4节所述: SEARCH命令在邮箱中搜索匹配的邮件 给定的搜索条件。搜索条件由一个 一个或多个搜索键。来自服务器的未标记搜索响应 包含对应于的消息序列号的列表 与搜索条件匹配的邮件 定义的搜索键如下所示。参考正式文件 语法部分,以获取 论据 身体 消息体中包含指定字符串的消息 信息 …因此,我想知道我是否可以在不首先下载的情况下搜索电子邮件正文?该功能可以帮助您,但请记住,它需要得到IMAP服

我可以通过IMAP搜索所有电子邮件而不下载邮件吗

如IMAP第4版第1版(IMAP4rev1)第6.4.4节所述:

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同时工作和失败(!!)。不要问

我现在只关注GMAIL,它支持搜索吗?我不知道:-)试着写一个小程序,调用
imap\u open()
imap\u SEARCH()
,你会发现的。文档页面中有一个示例,只需输入您的凭据和搜索条件。