Как разорвать цикл, только если тема электронного письма не содержит сегодняшнюю или вчерашнюю датуPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как разорвать цикл, только если тема электронного письма не содержит сегодняшнюю или вчерашнюю дату

Сообщение Anonymous »

Я читаю этот документ о подключении к моему серверу IMAP и чтении электронных писем, но у меня есть некоторые проблемы.
В настоящее время у меня около 10 тысяч электронных писем, и их количество растет (я удаляю старые электронные письма еженедельно, но их по-прежнему много), и в этой части кода он извлекает все электронные письма:
res, msg = imap.fetch(str(i), "(RFC822)")

Мои электронные письма имеют такой статический формат темы:
StaticText1 - SUBJECT - SentDateYYYY-MM-DD Hour:Minute
StaticText2 - SUBJECT - SentDateYYYY-MM-DD Hour:Minute

Для простоты представим себе такой список:
dates = ['2024-07-16', '2024-07-16', '2024-07-16', '2024-07-16', '2024-07-16', '2024-07-16', '2024-07-16', '2024-07-15', '2024-07-15', '2024-07-15', '2024-07-15', '2024-07-15', '2024-07-15', '2024-07-15', '2024-07-15', '2024-07-14', '2024-07-14', '2024-07-14', '2024-07-14', '2024-07-14', '2024-07-14', '2024-07-13', '2024-07-13', '2024-07-13', '2024-07-13', '2024-07-13', '2024-07-13', '2024-07-13']

Итак, допустим, чтение каждого письма занимает не менее 0,1 секунды, а для 10 тысяч писем это будет очень много времени.
Я читаю электронные письма в мой код от самого последнего до самого старого.
Я собираюсь достичь этого:
if datetime.datetime.now().strftime('%Y-%m-%d') in subject or (datetime.datetime.now() - datetime.timedelta(days=1)).strftime('%Y-%m-%d') in subject:
# then read email
print(email)
else:
# as soon as it reaches an email which has 2024-07-14, it breaks the loop and shouldn't try anything further
break

Главный вопрос: возможно ли это вообще?
Обновление1
Чтобы уточнить, я это знаю, но оно читает каждое письмо и, если оно не содержит даты, прерывается и переходит к другому письму (которое не является исключением):
for subject in emails:
if today in subject or yesterday in subject:
print(subject)


Подробнее здесь: https://stackoverflow.com/questions/787 ... -yesterday
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как найти сегодня и вчерашнюю дату как динамические переменные в скрипте приложения Google
    Anonymous » » в форуме Javascript
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Python-Получите вчерашнюю дату в качестве строки в формате Yyyy-MM-DD
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Получите вчерашнюю дату в виде строки в формате Yyyy-MM-DD
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как выделить сегодняшнюю дату в календаре Telerik datepicker
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как заставить datepicker показывать сегодняшнюю дату в новой форме, используя php
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»