Вы можете искать выбранный почтовый ящик следующим образом:
res, data = self.mail.search(None, 'ALL')
Ваши данные будут выглядеть примерно так: [b'1 2 3 4 5 6 7 8 9 10 11 12']
, где 12
- это UID для последнего сообщения в выбранном почтовом ящике.Теперь вы можете получить это письмо с помощью
self.mail.fetch(data[0].split()[-1], '(RFC822)')
Объяснение
IMAP4.search(charset, criterion[, ...])
возвращает список всех электронных писем в вашем текущем почтовом ящике.Они, как правило, упорядочены по дате, первый из которых самый старый.Укажите None
для набора символов для поиска любой почты, а для критерия установлено значение All
.
См. Документация Python imaplib
data[0].split()[-1]
возвращает последнееэлемент ([-1]
) вашего списка почтовых UID
Ответить на почту
Вы используете протокол IMAP для доступа к почтовому серверу.IMAP означает
Протокол доступа к Интернет-сообщениям
Он предназначен для доступа к сообщениям, а не для отправки почты.Вам нужен SMTP для отправки сообщений.Посмотрите на этот вопрос .