- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
class MyIMAP(object):
def __init__(self, host, login, password):
self.conn = imaplib.IMAP4_SSL(host)
self.conn.login(login, password)
self.conn.select(readonly=True)
def find_mail(self, mail_addr):
# Без select не находит
self.conn.select(readonly=True)
result, ids = self.conn.search(None, '(TO "%s")' % mail_addr)
imap = MyIMAP(host, login, password)
# В этот момент приходит емейл
for i in range(3):
mail = imap.find_mail("e.mail")
time.sleep(5)
Поиск через IMAP не находит письма, пришедшие после логина, если заново не выбрать папку перед поиском https://docs.python.org/2/library/imaplib.html#imaplib.IMAP4.select . ЧЗХ?
К вам обращается CEO "Napython GmbH" 3_14dar!
Пи = 3.14
Дар = дар
3.14дар = пидар
Дело в точке, надо попробовать создать 3_1415-3_14dar.
Х.з. я бы исходники глянул на твоём месте.
Да нунах.
Могу конечно и трафик поснифать, просто интересно - а может это такая фича имапа.
Since any command can return a status update as untagged data, the NOOP command can be used as a periodic poll for new messages or message status updates during a period of inactivity (this is the preferred method to do this).
Попробуй self.conn.noop() перед search.
Проблему я уже решил, просто время на это говно потратил.
Ну охуеть, даже не поснифать теперь.
Эту хуйню надо по любому перестартовывать извне после каждого соединения?
Docstring:
Search mailbox for matching messages.
(typ, [data]) = <instance>.search(charset, criterion, ...)
'data' is space separated list of matching message numbers.
Это, блядь, к тезису об охуительном удобстве питона и вот этом, блядь, говновысере http://xkcd.ru/353/ . Даже это ближе к реальности https://new.vk.com/13studiya
И да, я уже за тебя погуглил:
https://hg.python.org/cpython/file/2.7/Lib/imaplib.py#l629 - search() просто шлет команду SEARCH на сервер. Так что это сервер не ищет тебе письма, а не питон.
Вот тебе еще справка по протоколу на всякий случай https://tools.ietf.org/html/rfc3501#section-6.4.4
http://xkcd.ru/353/ после этого немного не того ожидаешь. Почему бы тогда просто с сокетом не работать?
Ты выше читал? У меня завелся уже этот пиздосокат, я видел что там передается. Т.е. оно один в один транслируется в команды imap.
Потому что с сокетом тебе надо вручную формировать команды и парсить ответы, а либа за тебя все это делает.
'(TO "%s")' - запросы вводятся вручную, флаги тоже. Луркай imapclient, что ли. Либа-хуиба. Ты не с сишки пришел?
давай я тебе тайну открою: в TCP нет понятия "строка"
там ходят октеты
иди кому-то другому мозги еби.
1) лоу левел (типизированная обертка вокруг сырого протокола или внешней тулзы типа p4)
2) хай левел (красивая хуита для ленивых)
И это, в общем, правильно: потому что если у тебязавтра сервер начнет уметь расширение Foo, то лоу левел либа будет его так же понимать.
Не нравится такой подход? Хочешь жырного абстрактого пафоса? Хочешь понятие ``Store`` как в жабе?
Хочу нормальных либ вроде requests. Бля, да вся встроенная сетевая библиотека питона пальцем деланая, что http(s), который уебанский и не может в сертификаты, что все остальное. Даже сокеты - калька с си и сосут даже у перла, где один конструктор для любого сокета.
вот тебе пример
в питоне всегда было принято иметь две либы:
1) Уебанская встроенная
2) Нормальная сторонняя?
Только вот уебанская встроенная - это первое с чем сталкиваешься. А еще сторонняя может за нехуй с сегодня на завтра перестать работать.
А что такое? Рубль снова упал? Почему такой багет? Птеродактилем еще назвать не хочешь?
на оскорбления родителей давай не переходи