Imaplib ищет строку темы со специальными символами, используя python - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь найти строки темы специальных символов, используя

typ, msg_ids = self.imap.uid('search', None, 'SUBJECT "Report #160496147 : "AU report QTD date wise MediaOps" from Dhruv Sapra"')

, но выдает ошибку команды неверного запроса.

Любая идея, почему это происходит, и любое решение для нее.

следующее решение не работает.

Python3 IMAP поиск специальных символов

1 Ответ

0 голосов
/ 16 декабря 2018

Во-первых, ваша проблема заключается в том, что в вашей строке в кавычках есть двойные кавычки, что является синтаксической ошибкой:

typ, msg_ids = self.imap.uid('search', None, 'SUBJECT "Report #160496147 : "AU report QTD date wise MediaOps" from Dhruv Sapra"')

Попробуйте экранировать внутренние кавычки:

typ, msg_ids = self.imap.uid('search', None, 'SUBJECT "Report #160496147 : \"AU report QTD date wise MediaOps\" from Dhruv Sapra"')

Также обратите внимание, чтокак на самом деле работает SEARCH, зависит от конкретной реализации.Поиск слова или двух обычно работает хорошо, но поиск литеральных строк часто не работает, в зависимости от того, как сервер индексирует его, если вообще.Например, сервер gmail индексирует только слова, а поиск подстрок или знаков препинания обычно не работает.Если ваш сервер совместим, просто поиск номера отчета с или без # может дать или не дать вам лучшие результаты.

typ, msg_ids = self.imap.uid('search', None, 'SUBJECT "#160496147"')
typ, msg_ids = self.imap.uid('search', None, 'SUBJECT "160496147"')
...