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
- Läs e-postmeddelanden från e-postservrar 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.