Поиск в теле письма без загрузки - IMAP

0

Могу ли я искать ВСЕ письма по IMAP без загрузки сообщений?

Как указано в 6.4.4 RFC 3501 IMAP версии 4 версии 1 (IMAP4rev1):

Команда SEARCH выполняет поиск в почтовом ящике сообщений, соответствующих заданным критериям поиска. Критерии поиска состоят из одного или нескольких ключей поиска. Немаркированный запрос ПОИСКА с сервера содержит список номеров последовательностей сообщений, соответствующих тем сообщениям, которые соответствуют критериям поиска.

Определенные ключи поиска следующие. См. Раздел "Формальный синтаксис" для точных синтаксических определений аргументов

BODY Сообщения, содержащие указанную строку в тексте сообщения.

... так что я задаюсь вопросом, могу ли я искать внутри тела электронной почты, не загружая его сначала?

Теги:
email
imap
horde

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. Не спрашивайте!

  • 0
    Сейчас я сосредоточен только на GMAIL, поддерживает ли он ПОИСК?
  • 0
    Я не знаю :-) Попробуйте написать небольшую программу, которая вызывает imap_open() и imap_search() и вы узнаете. На странице документации есть пример, просто введите свои учетные данные и критерии поиска.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню