2015-12-02 1 views
2

Я пытаюсь выполнить поиск с помощью imaplib с переменными. Когда я жестко кодирую информацию, поиск отлично работает.Python imaplib search Переменные

result, data = mail.search(None,'(SENTSINCE "15-Oct-2015" SENTBEFORE "19-Oct-2015")'.format(date=date)) 

Я пробовал много способов переменную установку и от других сообщений, кажется, лучшим способом установки целых параметров поиска в переменном и называть его таким образом.

search_string = '(SENTSINCE \"' + start_date_format + '\" SENTBEFORE \"' + format_endday + '\")\'.format(date=date)' 
result, data = mail.search(None, search_string) 

Печать переменной настройки выглядит точно:

(SENTSINCE "12-Oct-2015" SENTBEFORE "19-Oct-2015")'.format(date=date) 

Я получаю следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "infringment-report.py", line 74, in <module> 
    result, data = mail.search(None, search_string) 
    File "/usr/lib/python2.7/imaplib.py", line 639, in search 
    typ, dat = self._simple_command(name, *criteria) 
    File "/usr/lib/python2.7/imaplib.py", line 1087, in _simple_command 
    return self._command_complete(name, self._command(name, *args)) 
    File "/usr/lib/python2.7/imaplib.py", line 917, in _command_complete 
    raise self.error('%s command error: %s %s' % (name, typ, data)) 
imaplib.error: SEARCH command error: BAD ['The specified message set is invalid.'] 

Я стучал головой об этом на некоторое время , помощь приветствуется.

+0

Я хотел бы также хотелось знать, как использовать переменные в поисках imaplib! – Joansy

ответ

0

Я также новичок в python и imaplib, но я думаю, это будет работать нормально.

Для получения почты, имеющие имя, хранящееся в переменном сказать FromName затем

let criteria = ['From', fromname] 
typ, [msg_id] = mail.search(None, *criteria).