Python imaplib: не удается найти сообщение с помощью .search, но работает, если я жестко запрограммировал поиск - PullRequest
0 голосов
/ 04 ноября 2011

Это сводит меня с ума.Если я использую этот код:

while msgnums == ['']:  # wait until message list from server isn't empty
    typ, msgnums = gmail.m.uid('search', None, 'To', new_user)
    print '\n', new_user, sec_waiting, typ, msgnums

Вывод:

qatestdata+auto20111104113143@gmail.com 300 OK ['']

Другими словами, мое сообщение не найдено.НО, если я жестко закодирую его так:

typ, msgnums = gmail.m.uid('search', None, 'To', 'qatestdata+auto20111104113143@gmail.com')

Вывод:

qatestdata+auto20111104113844@gmail.com 0 OK ['19']

(находит сообщение.) New_user - строкаЯ не понимаю, почему это не работает.

Я также пытался:

search_string = '(To \"' + created_username + '\")'
while msg_uid == ['']:  # wait until message list from server isn't empty
    resp, msg_uid = gmail.m.search(None, search_string)

Но это тоже не получается.

1 Ответ

1 голос
/ 14 августа 2017

У меня была такая же проблема. Я решаю это с некоторыми изменениями в кавычках.

Я хочу найти это:

resp, items = m.search(None, '(FROM "*" SUBJECT "<root@doire> test.sh > /dev/null")')

Хард-код работает, но цикл не работает, хотя кажется, что это правильно.

    email_subjects_with_del = [ "<root@doire> test.sh > /dev/null" ]

    for sub in email_subjects_with_del:
        text = "%s%s%s" % ("'(FROM \"*\" SUBJECT \"", sub, "\")'")

        print text
        resp, items = m.search(None, text )

Но это работает (без кавычек)

    for sub in email_subjects_with_del:
        text = "%s%s%s" % ("(FROM \"*\" SUBJECT \"", sub, "\")")

        print text
        resp, items = m.search(None, text )
...