Как читать электронную почту, используя python и smtplib

Нашел много примеров, как отправлять почту, но как я могу читать входящие? Например яндекс.

import smtplib as smtp

email = "me@example.com"
password = "password"

server = smtp.SMTP_SSL('smtp.yandex.com')
server.set_debuglevel(1)
server.ehlo(email)
server.login(email, password)
server.auth_plain()
# server.get_and_print_your_inbox_magic_method()
server.quit()

2 ответа

Решение

Протокол SMTP предназначен для отправки почты. Если вы хотите посмотреть свой почтовый ящик - он же получает почту - вам нужно использовать POP3 или IMAP.

Но так же, как smtplib, Python также имеет imaplib для IMAP и poplib для POP3.

Как уже говорилось, вам нужно:

  • SMTP- сервер для отправки писем
  • IMAP для чтения электронной почты
  • POP3 для чтения электронной почты

IMAP более мощный, чем POP3; в общем, вы, вероятно, хотите использовать IMAP. POP3 удаляет электронные письма после их прочтения, в отличие от IMAP.


Для SMTP вы можете использовать Pythonsmtplib, для IMAP можно использоватьimaplibа для POP3 вы можете использоватьpoplib(все из стандартной библиотеки). Однако все они довольно низкого уровня.

Я создал более абстрактные альтернативы, чтобы упростить задачу для всех:

  • для отправки писем (SMTP)
  • для чтения электронной почты (IMAP)

Вот пример Красной почты:

      from redmail import EmailSender

# Configure sender
email = EmailSender(host="smtp.example.com", port=587)

# Send an email
email.send(
    subject="An example email",
    sender="me@example.com",
    receivers=['you@example.com'],
    text="Hello!",
    html="<h1>Hello!</h1>"
)

И пример Red Box:

      from redbox import EmailBox
from redbox.query import UNSEEN, SUBJECT

# Configure email box    
box = EmailBox(host="imap.example.com", port=993)

# Select email folder
inbox = box['INBOX']

for msg in inbox.search(UNSEEN & SUBJECT("An example email")):
    # Process the message
    print(msg.subject)
    print(msg.from_)

    # Mark the message as read
    msg.read()

Вы можете установить библиотеки:

      pip install redmail redbox

Соответствующие ссылки

Красная коробка:

Красная почта:

Другие вопросы по тегам