我可以通过IMAP 搜索所有电子邮件而不 下载邮件吗?
在RFC 3501 IMAP第4版修订版1(IMAP4rev1)的 6.4.4 中指定:
SEARCH命令在邮箱中搜索匹配的邮件 给定的搜索标准。搜索条件由一个组成 或更多搜索键。来自服务器的未标记的SEARCH响应 包含对应的消息序列号列表 那些符合搜索条件的邮件。
定义的搜索键如下。请参阅正式 语法部分用于精确的句法定义 参数
BODY 在邮件正文中包含指定字符串的邮件 消息。
...所以我想知道我是否可以在没有先下载的情况下搜索电子邮件正文?
答案 0 :(得分: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同时(!!)工作失败了。不要问!