Я получаю доступ к интерфейсу 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