import imaplib
import email
from email.header import decode_header
# Configurações do servidor IMAP e informações da conta
imap_server = 'imap.example.com' # Substitua pelo servidor IMAP do seu provedor de email
imap_username = 'seu_email@example.com' # Seu endereço de email
imap_password = 'sua_senha_de_email' # Sua senha de email
# Conecte-se ao servidor IMAP
try:
mail = imaplib.IMAP4_SSL(imap_server)
mail.login(imap_username, imap_password)
mail.select("inbox") # Escolha a caixa de entrada (você pode alterar para outras pastas)
# Pesquise por emails não lidos na caixa de entrada
status, email_ids = mail.search(None, "UNSEEN")
# Obtenha a lista de IDs de email não lidos
email_id_list = email_ids[0].split()
# Loop através dos IDs dos emails não lidos
for email_id in email_id_list:
status, msg_data = mail.fetch(email_id, "(RFC822)")
if status == "OK":
email_data = msg_data[0][1]
msg = email.message_from_bytes(email_data)
# Obtenha informações do remetente, assunto e corpo do email
from_info, _ = decode_header(msg.get("From"))[0]
subject, _ = decode_header(msg.get("Subject"))[0]
print(f"De: {from_info}")
print(f"Assunto: {subject}")
# Para obter o corpo do email, você pode usar msg.get_payload() para emails simples
# ou lidar com várias partes para emails com anexos ou formato complexo.
for part in msg.walk():
content_type = part.get_content_type()
content_disposition = str(part.get("Content-Disposition"))
if "attachment" not in content_disposition:
body = part.get_payload(decode=True).decode()
print("Corpo do Email:")
print(body)
print("\n")
mail.logout()
except Exception as e:
print(f"Erro ao ler emails: {e}")