I den här artikeln kommer du att lära dig hur du hämtar e-postmeddelanden från e-postservrarna programmatiskt. I synnerhet kommer du att lära dig hur du ansluter till e-postservern med protokollen IMAP eller POP3 och läser e-postmeddelanden i Python.

Python-bibliotek för att läsa e-postmeddelanden med POP3 eller IMAP

För att läsa e-postmeddelanden från e-postservrarna med POP3 eller IMAP kommer vi att använda Aspose.Email for Python via .NET. Det är ett funktionsrikt e-postbibliotek som låter dig implementera e-postklienter från dina Python-applikationer. Du kan antingen ladda ner .whl-fil eller installera biblioteket med följande pip-kommando.

> pip install Aspose.Email-for-Python-via-NET

Läs e-postmeddelanden från e-postservrar i Python

POP3 och IMAP används ofta för att hämta e-post från e-postservrarna. Följande avsnitt visar hur man läser e-postmeddelanden med båda e-postprotokollen separat.

Läs e-postmeddelanden med POP3 i Python

Följande är stegen för att läsa e-postmeddelanden med POP3 i Python.

  • Skapa ett objekt av Pop3Client-klassen och initiera det med värd, port, användarnamn och lösenord.
  • Ställ in säkerhetsalternativ med Pop3Client.securityoptions-egenskapen.
  • Hämta antal meddelanden med metoden Pop3Client.getmessagecount().
  • Få åtkomst till varje meddelande i en loop med metoden Pop3Client.fetchmessage().

Följande kodexempel visar hur man läser ett e-postmeddelande med POP3 i Python.

# skapa POP3-klient
client = Pop3Client("pop.gmail.com", 995, "username", "password")

# ställ in säkerhetsalternativ
client.security_options = SecurityOptions.AUTO

# få meddelanderäkning
messageCount = client.get_message_count()
print("Total messages: " + str(messageCount))

# skapa en instans av klassen MailMessage för att läsa meddelandet    
for i in range(0,messageCount):
    message = client.fetch_message(i+1)
    print("From:" + str(message.from_address))
    print("Subject:" + message.subject)
    print(message.html_body)

Läs e-postmeddelanden med IMAP i Python

Följande är stegen för att läsa e-postmeddelanden med IMAP i Python.

  • Skapa ett objekt av ImapClient-klassen och initiera det med värd, port, användarnamn och lösenord.
  • Välj mapp med metoden ImapClient.selectfolder(folderName).
  • Gå igenom listan över meddelanden med metoden ImapClient.listmessages().

Följande kodexempel visar hur man läser e-postmeddelanden med IMAP i Python.

# ansluta till e-postservern med IMAP
client = ImapClient("imap.gmail.com", 993, "username", "password")

# Välj mapp
client.select_folder("Inbox")

# gå igenom e-postmeddelanden och spara dem som .eml-filer
for msg in client.list_messages():
    print("Subject: " + msg.subject)
    print("HtmlBody: " + msg.html_body)
    print("TextBody: " + msg.body)
    client.save_message(msg.unique_id, msg.unique_id + "_out.eml")

Python Email Library - Skaffa en gratis licens

Du kan använda Aspose.Email för Python genom att skaffa en gratis tillfällig licens.

Slutsats

I den här artikeln har du lärt dig hur du läser e-postmeddelanden från e-postservrar med Python. Du har särskilt sett hur du använder POP3- och IMAP-klienter för att hämta och läsa e-postmeddelanden. Du kan utforska mer om Pythons e-postbibliotek med hjälp av dokumentationen. Dessutom kan du posta dina frågor på vårt forum.

Se även