Ошибка команды «search header» IMAP, когда поисковый текст содержит восклицательный знак (!), амперсанд (&) и т. д.

Я получаю доступ к интерфейсу IMAP GMail через python. I выполните следующую команду:

UID SEARCH HEADER Message-ID "abcdef@abc.com"

Это выполнено успешно (возвращает 1 UID соответствующего сообщения или 0, если оно не существует).Однако, если искомый текст содержит определенные символы (например, & или!), текст усекается в этой точке Это означает:

UID SEARCH HEADER Message-ID "!abcdef@abc.com"

Обрабатывается так же, как

UID SEARCH HEADER Message-ID ""

Также:

UID SEARCH HEADER Message-ID "abc!def@abc.com"

Обрабатывается как:

UID SEARCH HEADER Message-ID "abc"

Я прошел через спецификацию языка IMAP и из спецификации языка ABNF. кажется, что эти символы должны быть действительными. Почему Gmail усекает эти поисковые фразы в символах "!" и "&"? Есть ли способ избежать их? (Я пробовал!, терпит неудачу как плохо закодированная строка). Есть ли RFC или документ, который показывает, что действительно должно быть принято? Является ли это ошибкой в ​​реализации gmail imap?

Я также пробовал литеральный формат, те же результаты:

UID SEARCH HEADER Message-ID {15}
abc!def@abc.com

Все еще обрабатывается как:

UID SEARCH HEADER Message-ID {3}
abc

Спасибо!

Поиск IMAP RFC3501 Команда: http://tools.ietf.org/html/rfc3501#section-6.4.4 Формальный синтаксис: http://tools.ietf.org/html/rfc3501#section-9

7
задан rocketmonkeys 6 March 2012 в 18:20
поделиться