Я получаю доступ к интерфейсу IMAP GMail через python.Я запускаю команду, подобную этой:
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 или документ, который показывает, что действительно должно быть принято?Это ошибка в реализации imap в gmail?
Я также пробовал литеральный формат, результаты те же:
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